Jakie masz pytanie?

lub

Jakie są różnice między deklaracjami DOCTYPE w HTML4?

różnice między deklaracjami doctype rodzaje doctype html 4 standardy html 401
avatar

Gość (83.4.*.*)



Odpowiedź:

Wybór odpowiedniej deklaracji DOCTYPE w czasach świetności HTML4 był jedną z najważniejszych decyzji, jakie musiał podjąć twórca stron internetowych. Choć dziś, w erze HTML5, sprawa jest banalnie prosta i ogranicza się do jednej krótkiej linijki, kiedyś od tego wyboru zależało, jak przeglądarka zinterpretuje Twój kod i czy w ogóle wyświetli stronę poprawnie. DOCTYPE, czyli Document Type Definition (DTD), to informacja dla przeglądarki, z jaką wersją języka znaczników ma do czynienia. W przypadku HTML 4.01 mieliśmy do czynienia z trzema głównymi wariantami: Strict, Transitional oraz Frameset.

Dlaczego w ogóle istniały różne wersje?

Pod koniec lat 90. sieć przechodziła ogromną transformację. Twórcy standardów z organizacji W3C chcieli oddzielić warstwę strukturalną (HTML) od warstwy prezentacyjnej (wyglądu), którą miały przejąć arkusze stylów CSS. Jednak wiele istniejących wtedy stron opierało się na starych nawykach, takich jak używanie znaczników <font> czy atrybutów bgcolor. Aby umożliwić płynne przejście ze "starych czasów" do nowoczesności, wprowadzono różne poziomy rygorystyczności kodu.

HTML 4.01 Strict – dla purystów i zwolenników CSS

Deklaracja Strict była najbardziej rygorystyczną wersją HTML4. Została zaprojektowana z myślą o przyszłości i czystości kodu. Jej głównym założeniem było całkowite wyeliminowanie elementów prezentacyjnych.

W tej wersji nie wolno było używać znaczników takich jak <center>, <font>, <u> czy <s>. Wszystkie aspekty wizualne, jak kolory, czcionki czy wyrównanie tekstu, musiały być zdefiniowane w CSS. Co więcej, HTML 4.01 Strict nie pozwalał na stosowanie ramek (frameset). Jeśli Twoja strona miała być nowoczesna i zgodna z najwyższymi standardami tamtego okresu, wybierałeś właśnie ten wariant.

HTML 4.01 Transitional – złoty środek dla twórców

Transitional, jak sama nazwa wskazuje, był wariantem przejściowym. Była to najpopularniejsza deklaracja DOCTYPE w tamtym czasie, ponieważ oferowała dużą elastyczność. Pozwalała na korzystanie z dobrodziejstw HTML4, ale jednocześnie nie karała za używanie starszych, wycofywanych (deprecated) znaczników i atrybutów.

Jeśli miałeś starszą stronę i chciałeś ją zaktualizować bez konieczności przepisywania całego kodu na CSS, Transitional był idealnym rozwiązaniem. Przeglądarki akceptowały w tym trybie atrybuty takie jak align, border czy znacznik <font>. Był to swego rodzaju kompromis między nowymi standardami a kompatybilnością wsteczną.

HTML 4.01 Frameset – specyficzne rozwiązanie dla ramek

Trzeci rodzaj, Frameset, był niemal identyczny z wersją Transitional, ale z jedną kluczową różnicą: pozwalał na stosowanie ramek (<frameset> i <frame>). W tamtych czasach ramki były popularnym sposobem na budowanie układu strony (np. stałe menu z boku i zmieniająca się treść obok), choć z perspektywy użyteczności i SEO były rozwiązaniem problematycznym. Jeśli Twoja witryna opierała się na strukturze ramek, musiałeś użyć właśnie tej deklaracji, ponieważ wersje Strict i Transitional ich nie obsługiwały.

Tryb standardów a tryb osobliwości (Quirks Mode)

Warto wspomnieć o czymś, co spędzało sen z powiek programistom: Quirks Mode. Jeśli pominąłeś deklarację DOCTYPE lub wpisałeś ją błędnie, przeglądarka przechodziła w tzw. tryb osobliwości. W tym trybie przeglądarka udawała starsze oprogramowanie (np. Internet Explorer 5), aby poprawnie wyświetlić strony napisane według bardzo starych, nieoficjalnych zasad. Wybór konkretnego DOCTYPE w HTML4 (szczególnie Strict) wymuszał na przeglądarce "Standards Mode", co gwarantowało bardziej przewidywalne renderowanie strony.

Ciekawostka: Dlaczego HTML5 to zmieniło?

Jeśli spojrzysz na deklaracje HTML4, zauważysz, że są one bardzo długie i zawierają linki do plików DTD na serwerach W3C (np. http://www.w3.org/TR/html4/strict.dtd). Twórcy HTML5 zdali sobie sprawę, że nikt nie wpisuje tego z pamięci, a przeglądarki i tak nie pobierają tych plików za każdym razem. Dlatego w HTML5 uproszczono to do absolutnego minimum: <!DOCTYPE html>. Nie ma już podziału na Strict czy Transitional – standard jest jeden, a separacja treści od wyglądu stała się fundamentem współczesnego webdesignu.

Podsumowanie różnic w tabeli

Cecha HTML 4.01 Strict HTML 4.01 Transitional HTML 4.01 Frameset
Elementy prezentacyjne Zabronione (tylko CSS) Dozwolone (np. <font>) Dozwolone
Ramki (frameset) Brak obsługi Brak obsługi Pełna obsługa
Cel stosowania Czysty kod, nowoczesne standardy Kompatybilność ze starym kodem Strony oparte na ramkach
Rygorystyczność Bardzo wysoka Średnia Średnia

Dziś HTML4 jest już technologią historyczną, ale zrozumienie tych różnic pozwala docenić drogę, jaką przeszły standardy internetowe – od chaosu lat 90. do eleganckiej prostoty, którą cieszymy się obecnie.

Podziel się z innymi: