Menu >> Strona Startowa
Witam... Gry |

Licznik

Zegar

Webmaster-info

Webmaster

HTML

HTML

 
 

HTML (ang. HyperText Markup Language, pol. hipertekstowy język znaczników) – dominujący język wykorzystywany do tworzenia stron internetowych. Pozwala opisać strukturę informacji zawartych w dokumencie nadając znaczenie poszczególnym fragmentom tekstu (formując linki, nagłówki, akapity, listy, itp.) oraz osadzić w tekście dodatkowe obiekty np. statyczne grafiki, interaktywne formularze, dynamiczne animacje. W składni języka HTML wykorzystuje się znaczniki opatrzone z obu stron nawiasami ostrokątnymi.

Język HTML umożliwia, do pewnego stopnia, zdefiniowanie sposobu wizualnej prezentacji dokumentu w przeglądarce internetowej, a także osadzanie ciągów instrukcji języków skryptowych, wpływających na zachowanie przeglądarek lub innych parserów HTML. Zaleca się zrezygnowanie z wykorzystywania znaczników opisujących wygląd strony na rzecz kaskadowych arkuszy stylów CSS.

Ważną cechą języka, która wyraźnie przyczyniła się do rozpowszechnienia sieci WWW jest niezależność od systemu operacyjnego oraz parametrów sprzętowych komputera, na którym strony te będą oglądane.

 

Historia

 

Początki

W 1980 r. fizyk Tim Berners-Lee, pracujący dla ośrodka naukowo-badawczego CERN, stworzył prototyp hipertekstowego systemu informacyjnego - ENQUIRE. System wykorzystywano do organizowania i udostępniania dokumentów związanych z badaniami naukowymi. Rewolucyjność pomysłu polegała na tym, że użytkownik, posługując się odnośnikami, mógł z jednej lokalizacji przeglądać dokumenty fizycznie znajdujące się w innych miejscach na świecie. W 1989 r. Berners-Lee i inżynier oprogramowania CERN Robert Cailliau przedstawili równolegle dwie propozycje hipertekstowych systemów informacyjnych opartych na sieci Internet. Oba projekty cechowała podobna funkcjonalność. Rok później opracowali wspólną propozycję zaakceptowaną przez CERN - projekt WorldWideWeb (W3)[1].

 

Pierwsza specyfikacja

Pierwsza, publicznie dostępna, specyfikacja języka HTML, nazwana HTML Tags (pol. Znaczniki HTML), została zamieszczona w Internecie przez Bernersa-Lee w 1991 r.[2][3] Zawiera 22 znaczniki, tworzące początkowy, prosty szkielet HTML-a. Trzynaście z tych elementów istnieje do tej pory w specyfikacji HTML 4.[4]

HTML został napisany w oparciu o język SGML, jednak nie posiadał formalnej definicji w SGML-u. Sytuacja zmieniła się w połowie 1993 r., kiedy organizacja IETF opublikowała pierwszą propozycję specyfikacji języka HTML autorstwa Bernersa-Lee i Dana Connolly - Hypertext Markup Language (HTML) Internet-Draft (pol. szkic) - zawierającą opis gramatyki w postaci SGML Document Type Definition (pol. definicja typu dokumentu).[5] Opierając się na tym dokumencie twórcy przeglądarek eksperymentowali z HTML-em modyfikując atrybuty istniejących już znaczników oraz dodając całkowicie nowe. Szkic wygasł sześć miesięcy później, ale był znany z obsługiwania specyficznych dla przeglądarki NCSA Mosaic znaczników, służących do wstawiania obrazków. Fakt ten odzwierciedlał filozofię IETF o bazowaniu przyszłych standardów na prototypach, które odniosły sukces.[6] Podobnie Dave Raggett pod koniec roku 1993. w swoim szkicu HTML+ (Hypertext Markup Format) sugerował standaryzację już zaimplementowanych znaczników np. związanych z tworzeniem tabel i formularzy.[7]

Po wygaśnięciu szkiców HTML i HTML+ na początku 1994 r., organizacja IETF wydzieliła HTML Working Group, która w 1995 r. stworzyła HTML 2.0 - pierwszą oficjalną specyfikację języka HTML, traktowaną jako standard i podstawę przyszłych implementacji kolejnych wersji HTML-a. Specyfikacja HTML 2.0, opublikowana w 1996 r. jako Request for Comments, zawierała pomysły zarówno ze szkicu HTML jak i HTML+.[8] "HTML 1.0" nigdy nie istniał. Oznaczenie 2.0 zostało nadane w celu odróżnienia nowej specyfikacji od wcześniejszych szkiców.[9]

Dalszy rozwój HTML-a pod pieczą IETF przeciągał się ze względu na konflikt interesów. Od 1996 r. specyfikacje HTML rozwijane były z udziałem komercyjnych producentów oprogramowania przez organizację World Wide Web Consortium (W3C). W 2000 r. HTML stał się międzynarodowym standardem (ISO/IEC 15445:2000). Ostatnia specyfikacja języka HTML to opublikowana w 1999 przez W3C - HTML 4.01. Jej błędy zostały poprawione przez erratę opublikowaną w 2001 r.

Do najpopularniejszych przeglądarek należą[10]:Mozilla Firefox, Opera, Safari, Internet Explorer i Netscape. Jednak oprócz nich istnieje również wiele innych.

 

Historia wersji

 

Wersje HTML [edytuj]

lipiec, 1993: Hypertext Markup Language, szkic opublikowany przez IETF[11].

listopad, 1995: opublikowany przez IETF jako Request for Comments:

  • RFC 1866,
  • uzupełniony przez RFC 1867 (upload plików za pomocą formularza) tego samego miesiąca,
  • RFC 1942 (tabele) maj 1996,
  • RFC 1980 (mapy odsyłaczy po stronie klienta) sierpień 1996,
  • RFC 2070 (internacjonalizacja) styczeń 1997;

Ostatecznie, wszystkie elementy zostały uznane za przestarzałe/historyczne przez RFC 2854 w czerwcu 2000 r.

Standard HTML 3.0 został przedstawiony IETF przez Dave'a Raggeta i W3C w kwietniu 1995 r. Zawierał znaczną część funkcjonalności HTML+ Raggetta np. obsługa tabel, oblewanie tekstem obiektów, wyświetlanie skomplikowanych wyrażeń matematycznych.[12] Pomimo faktu, kompatybilności z HTML 2.0, był zbyt złożony (jak na owe czasy), aby go zaimplementować. Producenci przeglądarek optowali tylko za częścią nowego standardu, ale zaimplementowali inne znaczniki, które chętnie widzieliby w specyfikacji.[13] Z uwagi na brak obsługi ze strony przeglądarek prace nad wersją 3.0 zostały przerwane.

HTML 3.1 nigdy nie został oficjalnie zaproponowany. Światło dzienne ujrzała za to kolejna wersja HTML 3.2 (nazwa kodowa: Wilbur), w której zrezygnowano z wielu rozwiązań zastosowanych w HTML 3.0 na rzecz nowych znaczników i atrybutów wykorzystywanych już przez przeglądarki Netscape i Mosaic.[14]

14 stycznia 1997: HTML 3.2, opublikowany jako rekomendacja W3C[15].

IETF także nie miała szansy zatwierdzić HTML 3.2. Pracująca nad tą wersją grupa HTML Working Group została zamknięta we wrześniu 1996 r.[16]. Ostatecznie wersja 3.2 została opublikowana jako pierwsza rekomendacja W3C w 1997 r. Obsługa wyrażeń matematycznych zapoczątkowana w HTML 3.0 po kilku latach doczekała się własnego standardu - MathML.

18 grudnia 1997: HTML 4.0, opublikowany jako rekomendacja W3C. Zaoferowany w trzech typach[17]:

  • Strict, w którym używanie elementów uznanych za przestarzałe jest zabronione.
  • Transitional, w którym używanie elementów uznanych za przestarzałe jest dopuszczalne.
  • Frameset, w którym dopuszczone są głównie elementy związane z ramkami;

HTML 4.0 (początkowa nazwa kodowa "Cougar") również zawierał wiele elementów specyficznych dla przeglądarek, lecz jednocześnie starał się uporządkować standard poprzez oznaczenie części znaczników jako przestarzałe, zalecając wycofanie ich z powszechnego użycia. Fakt spowodowany był próbą oddzielenia warstwy logicznej struktury dokumentu od warstwy jego prezentacji, wykorzystując dołączane kaskadowe arkusze stylów (CSS). HTML 4.0 okazał się jedynie częściowym sukcesem w dziedzinie standaryzacji, gdyż wsparcie dla CSS w większości przeglądarek było przez wiele lat niepełne. Niekompatybilność przeglądarek ze standardem staje się jednak z czasem coraz mniejsza. Drobne korekty specyfikacji HTML 4.0 zostały opublikowane bez zmiany numeru wersji standardu, jednak kolejne poprawki przyczyniły się do powstania HTML 4.01.

24 kwietnia 1998: HTML 4.0 z drobnymi poprawkami został powtórnie opublikowany bez zmiany wersji.

24 grudnia 1999: HTML 4.01, opublikowany jako rekomendacja W3C. Oferuje te same typy, które oferował HTML 4.0.[18] Ostatnia errata została wydana 12 maja, 2001 r.[19]

HTML 4.01 oraz ISO/IEC 15445:2000 są najnowszymi i najbardziej aktualnymi wersjami standardu HTML.

15 maja 2000: HTML ISO/IEC 15445:2000 "ISO HTML", opublikowany na bazie HTML 4.01 Strict, jako międzynarodowy standard ISO/IEC[20].

22 stycznia 2008: HTML 5, opublikowany przez W3C jako szkic ("Working Draft")[21].

 

wersje XHTML

Zobacz więcej w osobnym artykule: XHTML.

XHTML jest oddzielnym, nowym językiem skonstruowanym na bazie HTML 4.01 przy użyciu XML 1.0. Jest dalej rozwijany:

  • XHTML 1.0, opublikowany 26 stycznia 2000 jako rekomendacja W3C; w późniejszym czasie skorygowany i opublikowany ponownie 1 sierpnia 2002. Oferuje trzy typy z HTML-a 4.0 oraz 4.01. Przystosowany do standardu XML, czego skutkiem są dodatkowe drobne restrykcje w języku.[22]
  • XHTML 1.1, opublikowany 31 maja 2001 jako rekomendacja W3C. Bazuje na XHTML 1.0 Strict, zawiera jednak pewne korekty. może być dostosowywany poprzez użycie modułów opisanych w Modularyzacji XHTML, opublikowanej 10 kwietnia 2001 jako rekomendacja W3C[23].
  • XHTML 2.0 w dalszym ciągu figuruje jako szkic. XHTML 2.0 nie jest kompatybilny z XHTML 1.x, dlatego też można go scharakteryzować jako nowy język powstały z inspiracji XHTML-em, niż traktować go jako uaktualnienie XHTML-a 1.x.[24]
  • XHTML 5, który jest aktualizacją XHTML-a 1.x, jest zdefiniowany wraz z HTML-em 5 w szkicu HTML 5[25].

 

Komponenty języka HTML

Język HTML składa się z kilku kluczowych komponentów:

  • znaczników (i ich atrybutów),
  • typów danych,
  • referencji znakowych,
  • odwołań w postaci encji,
  • deklaracji typu dokumentu.

 

Znaczniki (tagi)

 

Znaczniki stanowią podstawowy komponent języka HTML. Charakteryzują je dwie cechy: atrybuty i zawartość. Każdy atrybut i zawartość musi spełniać określone wymagania, aby dokument został poprawnie zwalidowany pod kątem zgodności ze standardem. Znacznik zwykle rozpoczyna się znacznikiem otwierającym (np. <nazwa-znacznika>), a kończy znacznikiem zamykającym (np. </nazwa-znacznika>). Atrybuty elementu są zawarte w znaczniku otwierającym (po nazwie znacznika), natomiast zawartość umieszczana jest pomiędzy znacznikiem otwierającym i zamykającym. (np. <nazwa-znacznika atrybut="wartość">zawartość</nazwa-znacznika>). Niektóre elementy, np. <br>, nie posiadają zawartości, a także znacznika zamykającego.

W nomenklaturze polskiej, dotyczącej języka HTML, słowa element używa się do określenia grupy:

  • znacznik otwierający,
  • atrybuty,
  • zawartość,
  • znacznik zamykający.

Słowami znacznik i tag określa się znacznik otwierający (wraz z zamykającym) w znaczeniu elementu składni języka HTML, np. "Do wyszczególnienia paragrafów wykorzystuje się znacznik <p>". Niektórzy słowa element używają zamiennie ze słowami znacznik lub tag.

Niektóre elementy nie wymagają znaczników końcowych (np. <p> odpowiadający za nowy akapit) lub ich nie mają (<img> wstawiający obrazek lub <br> łamiący linię).

Poniżej przedstawione są różne typy znaczników języka HTML.

Strukturalne - opisują logiczną strukturę tekstu, np. <h2>Golf</h2> nadaje znaczenie wyrazowi "Golf" i traktuje go jako nagłówek drugiego stopnia. Podczas renderowania (wyświetlania) zostanie on zaprezentowany w sposób wyróżniony (np. większą i pogrubioną czcionką). Znaczniki strukturalne nie definiują sposobu wyświetlania elementu, jednak większość przeglądarek posiada wbudowane style, których używa, gdy do dokumentu nie jest dołączony żaden kaskadowy arkusz stylów CSS.

Prezentacyjne - opisują wygląd poszczególnych elementów, np. <b>lama</b> powoduje, że "lama" zostanie wyświetlona pogrubioną czcionką. Nie daje jednak żadnych wskazówek urządzeniom nie potrafiącym wyświetlić pogrubionego tekstu (takim jak syntezatory mowy, czytający daną stronę na głos). W przypadku <b>pogrubienia</b> oraz <i>pochylenia</i> istnieją równoważne znaczniki, mające podobną lub taką samą formę wizualną, ale posiadające naturę semantyczną. Są to odpowiednio <strong>silne wzmocnienie znaczenia</strong> oraz <em>wzmocnienie znaczenia</em>. W tym przypadku łatwiej określić zachowanie syntezatora mowy podczas interpretacji takich znaczników np. poprzez mocniejsze zaakcentowanie danego wyrażenia. Znaczniki semantyczne nie są jednak stuprocentowymi odpowiednikami znaczników prezentacyjnych. Istnieją sytuacje, gdy tylko wizualnie chcemy wyróżnić daną część tekstu. Nie jest pożądane, aby syntezator mowy wzmacniał znaczenie np. tytułu książki w trakcie czytania strony, podczas gdy wizualnie warto byłoby taki tytuł wyróżnić czcionką pochyłą dla poprawienia czytelności tekstu. Większość znaczników prezentacyjnych w specyfikacji HTML 4.0 oznaczono jako przestarzałe na rzecz kaskadowych arkuszy stylów CSS.

Hipertekstowe - zawierają linki do innych dokumentów lub innych części tego samego dokumentu. HTML aż do wersji XHTML 1.1 wymaga do utworzenia hiperłącza elementu o nazwie anchor (pol. kotwica), zapisywanego w postaci: <a>Wikipedia</a>. Oprócz tego atrybut href musi zwierać poprawny adres URL. Następujący kod HTML <a href="http://pl.wikipedia.org/">Wikipedia</a> wyświetli słowo "Wikipedia" jako hiperłącze.

 

Atrybuty

Większość atrybutów elementów składa się z par nazwa-wartość, rozdzielonych znakiem "=", zawartych w znaczniku otwierającym elementu, po jego nazwie. Wartość może być zawarta w pojedynczych lub podwójnych cudzysłowach. Przy niektórych wartościach cudzysłowy mogą pominięte (tylko w specyfikacji HTML, nie XHTML), jednak nie jest to zalecane, a wręcz praktyka taka uznana jest na niebezpieczną.[26] W przeciwieństwie do atrybutów w postaci par nawa-wartość istnieją atrybuty mające wpływ na element poprzez samo ich zawarcie w znaczniku otwierającym[27] (np. ismap atrybut dla znacznika ).

Znaczna część elementów może posiadać standardowe dla znaczników atrybuty: id, class, style, title, a także atrybuty związane z językiem lang i dir.

Atrybut id nadaje elementowi unikalny identyfikator. Może on zostać użyty przez arkusze stylów do sprecyzowania wyglądu tego elementu lub przez skrypty np. do zmiany jego zawartości. Atrybut class służy do sklasyfikowania elementów dla celów prezentacyjnych. Dokument HTML lub zbiór takich dokumentów może używać klasy class="stopka", sugerując, że powinny być one wyświetlone na dole strony w postaci stopki. Elementy posiadające taką klasę mogą otrzymać styl, dzięki któremu zamiast wyświetlać się w miejscu występowania w kodzie HTML, będą zaprezentowane na dole strony w postaci stopki.

Autor może użyć znacznika style, aby nadać styl konkretnemu elementowi w kodzie HTML. Dobrą praktyką jest jednak nadanie elementowi unikalnego identyfikatora id, odnosząc się prezentacji tego znacznika w arkuszu stylów. Czasem jest to jednak nieporęczne podczas szybkiego testowania wyglądu elementów. Atrybutu title używa się w celu dodania do elementu informacji tekstowej. W wielu przypadkach zawartość atrybutu title wyświetlana jest w postaci podpowiedzi (tooltip), pojawiającej się na ekranie po najechaniu myszą na dany element. Wykorzystanie tych atrybutów może ułatwić znacznik span, należący do grupy tagów typu inline.

<span id="jakiesId" class="jakasKlasa" style="color:blue;" title="Hypertext Markup Language">HTML</span>

Powyższy kod wyświetli niebieski napis HTML (najechanie wskaźnikiem myszy na skrót HTML powinno w większości przeglądarek wyświetlić podpowiedź z rozwinięciem skrótu).

 

Encje i referencje znakowe

Począwszy od wersji 4.0, HTML definiuje listę 252 encji oraz 1114050 symboli znakowych, pozwalających na zapisanie określonych znaków za pomocą specjalnych stałych. Niektóre znaki można również zapisać dosłownie. Znak wprowadzony dosłownie i jego odpowiednik w postaci określonej stałej uznawane są za równoważne i są identycznie renderowane.

Zdolność alternatywnego zapisu znaków specjalnych "<" i "&" (zapisywanych odpowiednio jako &lt; and &amp;), umożliwia ich interpretację jako zwykłych znaków, zamiast traktowania ich jako istotnych elementów składni języka. Przykładowo, dosłownie zapisany znak "<" wskazuje na początek znacznika otwierającego, a "&" wskazuje na rozpoczęcie ciągu znaków, mającego być zinterpretowanym jako encja lub symbol (referencja znakowa). Zapisanie tego znaku jako "&amp;" lub "&#x26;" lub "&#38;" pozwala na użycie "&" w wartości elementu lub wartości atrybutu. Znak podwójnego cudzysłowu, ", użyty w wartości atrybutu, także musi zostać zapisany jako "&quot;" lub "&#x22;" lub "&#34;", gdyż wartość atrybutu sama jest opatrzona z obu stron właśnie takimi cudzysłowami (wprowadzonymi do kodu dosłownie). Odkąd autorzy stron często zapominają o używaniu stałych, przeglądarki stały się pod tym względem bardzo tolerancyjne, traktując znaki wprowadzone dosłownie jako kod, tylko w przypadkach, gdy dalszy ciąg kodu wskazuje na użycie tych znaków jako elementów składni języka.

Alternatywnego zapisu znaków (zwanego także ucieczką, ang. escaping) używa się do wprowadzania symboli, których nie da się łatwo wpisać dosłownie z klawiatury. Np. symbol "é", wykorzystywany standardowo tylko w klawiaturach zachodnioeuropejskich, może być zapisany jako encja &eacute; lub jako referencja znakowa &#233; lub &#xE9;. Znaki zawarte w referencjach (czyli "&", ";", litery w słowie "eacute" itd.) są dostępne na wszystkich klawiaturach i we wszystkich kodowaniach znaków, podczas, gdy znak "é" - nie.

 

Typy danych

HTML definiuje kilka typów danych, wprowadzanych jako wartości elementów lub atrybutów. Są to m.in. skrypty (script data), dane arkuszy stylów (stylesheet data), identyfikatory, nazwy, adresy URI, liczby, jednostki miary długości, języki, deksryptory mediów, kolory, kodowania znaków, data i czas, itp.

 

Deklaracja typu dokumentu

Aby uaktywnić definicję typu dokumentu (DTD) do celów poprawnej walidacji utworzonej strony, a także w celu uniknięcia działania przeglądarek w trybie quirks, dokument powinien rozpoczynać się deklaracją typu dokumentu (nieformalnie DOCTYPE). DTD, do którego odwołuje się sekcja DOCTYPE, zawiera gramatykę i zasady wykorzystywania znaczników w dokumencie podporządkowanemu określonemu DTD. Większość graficznych przeglądarek korzysta z sekcji DOCTYPE, a także innych dodatkowych informacji, warunkując tryb renderowania danej strony.

Przykład:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

Powyższa deklaracja odwołuje się do wersji Strict DTD specyfikacji HTML 4.01, która nie posiada znaczników prezentacyjnych, takich jak <font>, wykorzystując w tym celu kaskadowe arkusze stylów oraz tagi <span> i <div>. Walidatory kodu odczytują DTD w celu poprawnego sparsowania dokumentu i przeprowadzenia jego walidacji.

Dodatkowo HTML 4.01 obsługuje jeszcze wersje Transitional i Frameset. Wersja Transitional została stworzona w celu płynnego przejścia do wersji Strict, natomiast wersja Frameset obsługuje dokumenty wykorzystujące mechanizm ramek.

 

Semantyczny HTML

Nie istnieje oficjalna specyfikacja nazwana "Semantyczny HTML", jednak poniżej zawarte wskazówki związane są właśnie z tworzeniem poprawnego, semantycznego kodu HTML. Semantyczny HTML jest swego rodzaju celem i praktyką tworzenia dokumentów za pomocą kodu, zawierającego tylko znaczenie, które autor chciał nadać poszczególnym częściom tekstu, bez informacji na temat prezentacji. Klasycznym przykładem jest różnica pomiędzy elementem <em> i elementem <i>. Zwykle element wzmacniający znaczenie jest renderowany w postaci pochylonej czcionki, dlatego wizualnie jeden i drugi wyglądają tak samo. Jednak wzmocnienie znaczenia tekstu różni się od wyświetlenia np. tytułu książki, który także może zostać wyświetlony za pomocą czcionki pochyłej. W czystym semantycznym kodzie HTML, tytuł książki używałby innego znacznika niż <em> (np. <span>), ponieważ znaczeniowo są to dwie różne rzeczy.

Tworzenie semantycznego kodu wymaga od autorów:

  1. unikania znaczników prezentacyjnych
  2. używanie dostępnych znaczników do wyodrębnienia znaczeń poszczególnych fraz i struktury w dokumencie. Np. tytuł książki będzie potrzebował własnego znacznika i klasy: <cite class="booktitle">Lamy świata</cite>. Tutaj został użyty znacznik <cite> dlatego, że najbardziej pasuje do znaczenia tej frazy w tekście. Element <cite> nie jest jednak na tyle precyzyjny, aby dokładnie określić rodzaj przytaczanego tytułu. Tutaj został użyty w celu przytoczenia tytułu książki, a nie np. tytułu artykułu w gazecie lub czasopiśmie. Pomimo tego, znaczenie na pewnym ogólnym poziomie zostało uchwycone i zapisane.

Semantyczny HTML wymaga także kompletnej specyfikacji oraz oprogramowania przestrzegającego zasady w niej zawarte. Głównie rozwój i wzrost popularności kaskadowych arkuszy stylów CSS zachęcił autorów stron do używania semantycznego HTML-a. CSS pozwala całkowicie oddzielić warstwę semantyczną od warstwy prezentacji poprzez trzymanie kodu odpowiedzialnego za wygląd w osobnym pliku CSS. Semantyczny HTML posiada wiele zalet:

  • Zapewnia zgodność stylów elementów posiadających to samo znaczenie. Każdy nagłówek, cytat, czy inne podobne do siebie elementy otrzymają ten sam wizualny styl.
  • Uwalnia autorów od potrzeby myślenia na temat sposobu prezentacji dokumentu. Gdy autor zapisuje liczbę dwa, nie musi się martwić, czy ma ją zapisać w postaci słowa ("dwa"), czy w postaci numerycznej (2). Semantyczny znacznik może wyglądać następująco <number>2</number>, pozostawiając szczegóły jego prezentacji autorowi arkusza stylów.
  • Sprawia, że dokument staje się niezależny i może być formatowany na wiele sposobów. Semantyczny dokument może być parowany z nielimitowaną liczbą arkuszy stylów, dostosowujących wygląd do ekranu komputera, wysokorozdzielczych drukarek, urządzeń mobilnych, przeglądarek wykorzystujących syntezatory mowy lub urządzeń dostosowanych dla osób posługujących się alfabetem braille-a itd. Aby tego dokonać, nie są potrzebne żadne zmiany w semantycznym kodzie HTML.

Niektóre aspekty oddzielenia warstwy znaczeniowej od warstwy prezentacji są trudne i problematyczne. Niektóre elementy są hybrydami, które swoim znaczeniem warunkują sposób prezentacji, np. tabela wyświetla dane w formie tabelarycznej. Zaprezentowanie tabeli przez syntezator mowy wymaga zamiany typowo wizualnego tworu na formę dźwiękową. Z drugiej strony, bardzo często piosenki — twory prezentowane za pomocą dźwięków — bardzo często prezentowane są w formie tekstowej. Dla tego typu elementów rozdzielenie znaczenia od formy prezentacji nie jest łatwe. Takie elementy jednak nie są często spotykane.

 

Pozyskiwanie HTML-a

Dokumenty HTML mogą być pozyskiwane za pomocą tych samych środków, za pomocą których są pozyskiwane inne pliki. Najbardziej popularnymi sposobami pozyskiwania dokumentów HTML są serwery HTTP oraz poczta email.

 

Publikowanie HTML-a za pomocą HTTP

Sieć WWW składa się głównie z dokumentów HTML przekazywanych z serwerów WWW to przeglądarek za pomocą protokołu HTTP. Aby umożliwić przeglądarce rozpoznanie pliku jako dokumentu HTML, musi być on specjalnie oznaczony. Służą do tego metadane zawierające typ MIME (text/html dla HTML 4.01 i wcześniejszych, application/xhtml+xml dla XHTML 1.0 i późniejszych) oraz standard kodowania znaków.

W nowoczesnych przeglądarkach, typ MIME, przesyłany wraz z dokumentem HTML, warunkuje sposób interpretowania strony przez przeglądarkę. Dokument wysłany z typem MIME w postaci XHTML lub wysłany jako application/xhtml+xml, jest traktowany jako poprawnie zapisany plik XML. Każdy błąd składniowy w takim pliku uniemożliwi przeglądarce wyświetlenie tego pliku. Ten sam dokument przesłany z typem MIME w postaci HTML lub wysłany jako text/html, może zostać częściowo wyświetlony, gdyż przeglądarki bardziej pobłażliwie traktują standard HTML. Jednak plik XHTML parsowany w ten sposób nie jest poprawnym dokumentem XHTML, ani nawet HTML, ale tzw. mieszaniną tagów (tag soup).

Jeśli typ MIME zostanie rozpoznany jako inny niż HTML, przeglądarka nie powinna pozwolić na renderowanie dokumentu jako HTML, nawet jeśli dokument zawiera poprawną deklarację typu dokumentu. Tym niemniej, niektóre z przeglądarek próbują rozpoznać typ pliku przy pomocy jego adresu URL, pomimo faktu, iż ta praktyka jest zabroniona w specyfikacji HTTP 1.1.

 

HTML w poczcie email

Wiele graficznych klientów pocztowych pozwala na wykorzystywanie podzbioru znaczników HTML w celu wykorzystania semantyki oraz formatowania, niedostępnego przy pisaniu wiadomości za pomocą czystego tekstu, np. podkreślenie znaczenia tekstu, blokowe cytaty, diagramy, wyrażenia matematyczne itd. Część tych klientów posiada edytor GUI do tworzenia emaili w HTML-u oraz silnik renderujący służący do wyświetlania otrzymanych wiadomości HTML. Wykorzystywanie HTML-a w poczcie email jest kontrowersyjne z uwagi na problemy z kompatybilnością, ataki phishingowe, możliwość oszukiwania filtrów antyspamowych oraz większy rozmiar wiadomości w stosunku do czystego tekstu.

 

Konwencje nazewnicze

Najpopularniejszym rozszerzeniem plików zawierających kod HTML jest .html. Popularnym jego skrótem jest .htm, wywodzący się ze starszych systemów operacyjnych i systemów plików (DOS, FAT), limitujących rozszerzenia plików do trzech znaków. Obie formy rozszerzeń są obsługiwane przez wszystkie nowsze przeglądarki.

 

Kategoryzacja podziałów języka HTML

Od samego początku HTML zdobywał uznanie w relatywnie szybkim tempie. Niestety nie istniały wtedy żadne standardy stojące na straży czystości kodu. Pomimo tego, że autorzy HTML-a stworzyli go jako język semantyczny, praktyczne użycie wtłoczyło do niego wiele elementów i atrybutów prezentacyjnych, głównie z powodu producentów przeglądarek. Ostatnie standardy związane z HTML-em odzwierciedlają wysiłki zmierzające do uporządkowania z czasem chaotycznego rozwoju języka oraz utworzenia racjonalnych fundamentów pod budowę sensownych i dobrze prezentujących się dokumentów. Aby skierować rozwój coraz mniej semantycznego języka na właściwe tory, konsorcjum W3C ustanowiło standard kaskadowych arkuszy stylów CSS oraz rozszerzalny język arkuszy stylów XSL, przenosząc na nie ciężar warstwy prezentacji. Dzięki nim język HTML powoli zaczął wyzbywać się znaczników prezentacyjnych.

Aktualnie wyróżniamy dwie kategorie podziałów standardu HTML:

  1. HTML bazowany na języku SGML versus HTML bazowany na języku XML (XHTML)
  2. wersja Strict versus wersja Transitional versus wersja Frameset

 

Bazowany na SGML vs bazowany na XML

W celu odróżnienia od tradycyjnej wersji bazowanej na SGML-u, specyfikacja HTML-a bazowana na XML-u nosi nazwę XHTML. Pomimo tego, element główny, wykorzystywany w składni języka, dalej nazywa się 'html'. Organizacja W3C chciała, aby XHTML 1.0 był identyczny z HTML 4.01, poza pewnymi obejściami wynikającymi z ograniczeń wynikających ze specyfikacji samego XML-a w stosunku do bardziej złożonego SGML-a. Czasem w wyniku tak ścisłego pokrewieństwa, autorzy dokumentacji scalają obie nazwy jako (X)HTML lub X(HTML).

Podobnie jak HTML 4.01, XHTML 1.0 posiada trzy wersje: strict, transitional i frameset.

Poza deklaracją otwierającą, różnice pomiędzy HTML-em 4.01 i XHTML-em 1.0 są w większości syntaktyczne. Składnia HTML-a pozwala na więcej swobody podczas pisania kodu niż XHTML. Są to elementy z opcjonalnymi znacznikami otwierającymi lub zamykającymi, a nawet elementy puste, które nie mają znacznika zamykającego. W przeciwieństwie do HTML-a XHTML wymaga, aby wszystkie elementy posiadały znaczniki otwierające i zamykające. W konsekwencji XHTML wprowadza tagi, mogące być otwarte i zamknięte tylko w znaczniku otwierającym, wstawiając znak "/" (slash) przed końcem znacznika otwierającego, np. <br/>. Wdrożenie tego skrótu może stwarzać problemy dla starszego oprogramowania, dla którego ta konwencja jest obca.

W celu zrozumienia subtelnych różnic pomiędzy HTML-em i XHTML-em przedstawione poniżej kroki prezentują transformację dokumentu XHTML 1.0 do dokumentu HTML 4.01:

  1. Język elementu powinien być zapisany przy użyciu atrybutu lang zamiast XHTML-owego xml:lang.
  2. Usuń XML-ową przestrzeń nazw (xmlns=URI). HTML nie obsługuje przestrzeni nazw.
  3. Zmień deklarację typu dokumentu z XHTML 1.0 na HTML 4.01.
  4. Jeśli istnieje usuń deklarację XML (np. <?xml version="1.0" encoding="utf-8"?>).
  5. Upewnij się, że typ MIME dokumentu jest ustawiony na text/html; zarówno dla HTML-a jak i XHTML-a, informacja ta pochodzi z nagłówka HTTP Content-Type, przesyłanego przez serwer
  6. Zmień składnię XML elementów pustych na odpowiednią składnię HTML (<br/> na <br>)

Stosując się do wytycznych związanych z kompatybilnością (compatibility guidelines) organizacji W3C, przeglądarka powinna poprawnie zinterpretować typ dokumentu jako HTML lub XHTML. W3C zezwala na serwowanie dokumentów XHTML 1.0 jako HTML (MIME text/html) lub jako XHTML (MIME application/xhtml+xml lub application/xml). Jeśli dokument serwowany jest jako XHTML, przeglądarka używa parsera XML, stosującego się do specyfikacji XML.

 

Transitional versus Strict

Ostatnia specyfikacja HTML 4.01, a także wczesna specyfikacja XHTML posiadają trzy wersje: Strict, Transitional (nazwaną też Loose) i Frameset. Strict reprezentuje poprawną wersję standardu, podczas gdy warianty Transitional i Frameset zostały wprowadzone w celu płynnego przejścia ze starszych wersji HTML. Transitional i Frameset, w opozycji do Strict, pozwalają na używanie znaczników prezentacyjnych.

Zasadnicze różnice pomiędzy wersjami Transitional i Strict, pokazują, że Transitional jest bardziej tolerancyjny dla koderów. Obejmują one:

  • Mniej restrykcyjny model treści (content model)
    • Elementy typu inline i czysty tekst (#PCDATA) są dozwolone bezpośrednio w znacznikach: body, blockquote, form, noscript i noframes.
  • Elementy prezentacyjne
    • podkreślenie (u),
    • przekreślenie (s i strike),
    • center,
    • font,
    • basefont.
  • Atrybuty prezentacyjne
    • background i bgcolor dla elementu body,
    • align dla elementów div, form, paragraph (p) oraz nagłówków (h1...h6)
    • align, noshade, size oraz width dla elementu hr
    • align, border, vspace oraz hspace dla elementu img and object elements
    • align dla elementu legend oraz caption
    • align oraz bgcolor dla elementu table
    • nowrap, bgcolor, width, height dla elementów td oraz th
    • bgcolor dla elementu tr
    • clear dla elementu br
    • compact dla elementów dl, dir oraz menu
    • type, compact oraz start dla elementów ol i ul
    • type oraz value dla elementu li
    • width dla elementu pre
  • Dodatkowe elementy w wersji Transitional
    • lista menu (brak substytutu, jednak zalecana jest lista nienumerowana; może powrócić w specyfikacji XHTML 2.0)
    • lista dir (brak substytutu, jednak zalecana jest lista nienumerowana)
    • isindex (element wymaga obsługi po stronie serwera)
    • applet (przestarzały na rzecz elementu object)
  • Element pre nie zezwala na użycie elementów: applet, font, and basefont
  • Atrybut language w elemencie script
  • Elementy związane z mechanizmem ramek
    • frameset (używany zamiast elementu body w wersji Frameset)
    • frame
    • iframe
    • noframes
    • atrybut target w elementach anchor, client-side image-map (imagemap), link, form, and base

 

Frameset versus Transitional

W odniesieniu do powyższych różnic, wersja Frameset posiada inny model treści (content model):

<html>
 <head>
 Wartości elementu head.
 </head>
 
 <frameset>
 <frame></frame>
 
 <noframes></noframes>
 </frameset>
</html>

 

Przykład dokumentu HTML

Prosty przykład strony WWW w HTML-u z ustawieniem języka polskiego:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
           "http://www.w3.org/TR/html4/strict.dtd">
 
<html lang="pl">
 
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Tytuł strony</title>
</head>
 
<body>
    <h1>Nagłówek pierwszego poziomu</h1>
    <p>
    Akapit (z ang. paragraph)<br>
    i jeszcze trochę tekstu w następnym wierszu<br>
    <a href="http://pl.wikipedia.org">
    a to link do Wikipedii</a>.
</body>
 
</html>

Aby obejrzeć powyższy dokument w przeglądarce, należy go zapisać z rozszerzeniem .html (bądź innym, które na naszym komputerze zostanie przedstawione przeglądarce jako text/html np. .htm) i po prostu otworzyć.

Powinien się wyświetlić tekst:

Nagłówek pierwszego poziomu
Akapit (z ang. paragraph)
i jeszcze trochę tekstu w następnym wierszu
a to link do Wikipedii.

Strony HTML-a można tworzyć na wiele sposobów. Obecnie większość stron HTML jest tworzona dynamicznie przez skrypty w różnych językach programowania (PHP, Perl, Java, ASP i wiele innych). Można też napisać dokument ręcznie za pomocą dowolnego edytora tekstowego (takiego jak Emacs, vim, czy nawet zwykły Notatnik pod Windows) lub jednego z wielu specjalnie do tego przystosowanych edytorów HTML, takich jak Adobe Dreamweaver, Pajączek czy Quanta.

 

Podsumowanie

Podsumowując, HTML 4.01 uporządkował różne niekompatybilne implementacje tego języka w jedną, spójną specyfikację bazującą na SGML-u. XHTML 1.0 przeniósł tą specyfikację na nowy grunt - standard XML. Kolejna wersja, XHTML 1.1, korzysta z modularnej natury XML-a, dzieląc specyfikację na wiele segmentów. XHTML 2.0 jest powrotem do korzeni pod względem idei semantycznego kodu, w przeciwieństwie do 1.0 wnosi wiele radykalnych zmian i zrywa z kompatybilnością wsteczną. Jednak ta droga rozwoju została ostatecznie uznana za nietrafioną i rozwój XHTML 2.0 został zarzucony na rzecz HTML 5, nad rozwojem którego trwają obecnie intensywne prace.

Do tyłu

desing Webmaster-info

 
 
Ta strona internetowa została utworzona bezpłatnie pod adresem Stronygratis.pl. Czy chcesz też mieć własną stronę internetową?
Darmowa rejestracja