Co to jest DOCTYPE?


174
  • Co to jest DOCTYPE i dlaczego chcę go używać?
  • Jakie są różne DOCTYPE, których mogę używać?
  • Jaka jest różnica między trybem standardów a trybem dziwactw i jakie dziwactwa mogę napotkać przy różnych ustawieniach DOCTYPE?

Na koniec, jaki jest właściwy DOCTYPE, którego powinienem używać?


9
Czy to nie powinna być wiki?
Alex,

Odpowiedzi:


76

Zasadniczo DOCTYPE opisuje kod HTML, który będzie używany na twojej stronie.

Przeglądarki używają również DOCTYPE do określenia sposobu renderowania strony. Nie dołączenie DOCTYPE lub włączenie nieprawidłowego może wywołać tryb dziwactw.

Kickerem jest to, że tryb dziwactw w Internet Explorerze różni się od trybu dziwactw w Firefoksie (i innych przeglądarkach); co oznacza, że ​​będziesz miał znacznie trudniejszą pracę, starając się zapewnić spójne renderowanie strony we wszystkich przeglądarkach, jeśli zostanie uruchomiony tryb dziwactw, niż w przypadku renderowania w trybie standardowym.

Wikipedia zawiera bardziej szczegółowe podsumowanie różnic w renderowaniu podczas używania różnych DOCTYPE . XHTML jest włączany przez niektóre DOCTYPE i jest sporo debaty na temat używania XHTML, który jest dobrze opisany w XHTML - mity i rzeczywistość .

Istnieją subtelne różnice między różnymi „zgodnymi ze standardami” renderowaniem DOCTYPE, takimi jak HTML5 DOCTYPE ( <!DOCTYPE html>przed HTML5, znany tylko jako „chudy typ dokumentu”, który nie wyzwala standardowego renderowania w starszych przeglądarkach), a innymi DOCTYPE, takimi jak ten dla Przejście HTML 4.01:

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

39
Obecnie wolę HTML5 DOCTYPE: <! DOCTYPE html> działa we wszystkich nowoczesnych przeglądarkach, w tym IE6.
Walter Rumsby,

53
IE6 ∉ nowoczesne przeglądarki

26

DOCTYPE informuje klienta użytkownika korzystającego (przeglądarki internetowe, roboty sieciowe, narzędzia walidacyjne), jakiego typu dokument jest plik. Użycie go gwarantuje, że konsument poprawnie przeanalizuje kod HTML zgodnie z zamierzeniami.

Istnieje kilka różnych DOCTYPÓW dla HTML, XHTML i zestawów ramek, a każdy z nich ma dwa tryby Ścisły i Przejściowy. Strict mówi, że twój znacznik dokładnie używa zdefiniowanych standardów. Więcej informacji można znaleźć na stronie W3C DTD .

Quirksmode to w zasadzie metoda układu z czasów wojen przeglądarek, kiedy standardy były znacznie mniej przestrzegane i definiowane. Ogólnie rzecz biorąc, strona w trybie standardowym, która jest prawidłowa, będzie układać się bardziej spójnie w różnych przeglądarkach, ale może nie mieć pewnych wymaganych funkcji. Jedną z takich funkcji jest atrybut target tagu kotwicy. Witryna Quirksmode jest doskonałym źródłem informacji o tych różnicach.

Ostatnia myśl jest taka, że ​​nowy standard HTML5 proponuje użycie bardzo prostego DOCTYPE:

<!DOCTYPE html>

Użycie tego DOCTYPE jest zgodnym z przyszłością sposobem określenia, czy Twoje strony są w trybie standardowym i są w formacie HTML. Jest to metoda używana przez Google i dość łatwa do zapamiętania. Zalecam używanie tego DOCTYPE, chyba że planujesz używać XHTML.


2
Czy tag HTML DOCTYPE? Jeśli tak, to po co nam to na początek?
CuriousMind

2
@vipinkoul tag DOCTYPE określa, jaki typ dokumentu HTML wysyłasz do User-Agent. Może to być HTML, XHTML lub zestaw ramek. Może to być Strict HTML / XHTML / Frameset lub Transitional HTML / XHTML / Frameset. Przeważnie wpływa to na to, jak parser reaguje, gdy napotka błąd.
Rob

6

Doctype określa, której wersji HTML / XHTML używa twój dokument. Chciałbyś użyć doctype, aby podczas uruchamiania kodu przez walidatory, walidatory wiedziały, z którą wersją HTML / XHTML mają sprawdzić. Ta strona zawiera dobry przegląd:

Nie zapomnij dodać typu dokumentu

Poniżej wymieniono typowe typy dokumentów, których możesz użyć:

Zalecana lista DTD

Który typ dokumentu należy wybrać, zależy od używanego kodu, ale aby uzyskać pomysł, spróbuj uruchomić kod przez walidator W3C i użyj menu rozwijanego Typ dokumentu w menu „Więcej opcji”, aby wypróbować różne typy dokumentów .

Usługa W3C Markup Validation Service


3

W HTML (w tym XHTML) używanym na stronach internetowych, DOCTYPE jest ciągiem, który uruchamia jeden z kilku trybów przeglądarki (tryb dziwactwa, tryb standardów, tryb prawie standardowy), w zależności od dokładnej pisowni DOCTYPE. Chcesz go użyć, aby wybrać tryb przeglądarki, który najlepiej pasuje do Twojej strony.

Formalnie w SGML i XML deklaracja DOCTYPE jest odniesieniem do definicji typu dokumentu (DTD), która określa formalne reguły składni języka znaczników. Żadna przeglądarka nigdy nie używała DTD do niczego ani nawet nie uzyskiwała do nich dostępu. Jednak są one używane przez weryfikatory znaczników SGML i XML, takie jak W3C Markup Validator , z wyjątkiem trybu HTML5. Dlatego wybór DOCTYPE określa sposób działania walidatora, jeśli dokument zostanie do niego przesłany. Jednak tryb działania walidatora można również wybrać w jego interfejsie użytkownika. (Procesory SGML i XML mogą używać DOCTYPE na różne inne sposoby, ale pytanie to najwyraźniej ogranicza się do kontekstu HTML oraz przeglądarek internetowych i ściśle powiązanego oprogramowania).

Nie ma wiarygodnej listy DOCTYPE. Każda specyfikacja HTML lub wersja robocza definiuje swój własny DOCTYPE lub DOCTYPE. Zestaw DOCTYPE rozpoznawany przez przeglądarki podczas wybierania trybu różni się w zależności od przeglądarki. W praktyce nie ma powodu, aby używać DOCTYPE innego niż<DOCTYPE html> zdefiniowany w HTML5 , chociaż HTML5 zawiera również kilka „starszych DOCTYPE”. Możesz użyć tego DOCTYPE, jeśli chcesz trybu standardowego (zalecanego dla nowych stron) i nie używać DOCTYPE, jeśli chcesz trybu osobliwości (który może być potrzebny w przypadku starszych stron).

„Tryb standardów” ogólnie oznacza tryb działania, w którym przeglądarka podąża za HTML, CSS, DOM i innymi specyfikacjami najlepiej, jak potrafi. Zwykle nie oznacza to pełnej zgodności. „Tryb dziwactwa” różni się w różnych przeglądarkach, ale generalnie oznacza to próbę naśladowania zachowania bardzo starych przeglądarek, takich jak IE 5. Celem jest utrzymanie działania starych stron przy założeniu, że mogą one polegać na funkcjach i błędach w stare przeglądarki. Zobacz opis Co się dzieje w trybie dziwactw? Zwróć uwagę, że istnieje nieco inna, bardziej ograniczona koncepcja „trybu dziwactw” w HTML5, która bardzo przypomina dokument o nazwie Quirks Mode Living Standard .

Typowym problemem jest to, że szerokości elementów są obliczane inaczej w trybie osobliwości i w trybie standardowym. Oznacza to, że układ strony może być mniej lub bardziej zmieniony lub nawet całkowicie pomieszany, jeśli strona zaprojektowana do pracy w trybie dziwactw jest przeglądana w trybie standardowym (lub odwrotnie).

Powinieneś więc używać <!DOCTYPE html>dla nowych stron i zachować wszystkie DOCTYPE (jeśli w ogóle), których używałeś dla starych stron.

Jednak tryb dziwactw oznacza, że ​​w niektórych przeglądarkach wiele nowych funkcji CSS nie jest obsługiwanych. Oznacza to, że jeśli chcesz ulepszyć starą stronę o jakąś funkcję CSS3, może być konieczne przełączenie się na DOCTYPE, który uruchamia tryb standardów. W takim przypadku musisz przejrzeć i przetestować stronę, aby sprawdzić, czy będzie działać w trybie standardowym.


Dzięki za dodatkowe szczegóły, zwłaszcza te z nich: «Nie przeglądarka nigdy nie używany DTD do czegokolwiek lub nawet obejrzano je» i «nie ma powodu, aby użyć innego niż DOCTYPE <DOCTYPE html>jak zdefiniowano w HTML5 ».
Armfoot

2

Typy dokumentów informują przeglądarkę, w jakim języku jest napisana strona, czy to HTML czy XHTML. Na przykład,

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

powiedz przeglądarce, aby renderowała stronę jako HTML4 strict. Starsze przeglądarki niepoprawnie renderowały strony, dlatego nowsze przeglądarki symulują błędy starszych przeglądarek po znalezieniu starego typu dokumentu.

Dzisiaj powinieneś używać przynajmniej HTML4 lub lepszego XHTML.

Wpis na blogu dotyczący typów dokumentów brzmi: Napraw swoją witrynę za pomocą odpowiedniego DOCTYPE! (z A List Apart ).


1

Przede wszystkim nie ma jednego typu dokumentu, którego powinieneś używać, ale większość projektantów stara się, aby działał w XHTML 1.0 Strict.

Doctype to nic innego jak deklaracja tego, jakich tagów możesz używać w swoim html (chociaż przeglądarki mogą używać więcej lub mniej niż to, co jest zdefiniowane) Możesz faktycznie otworzyć plik doctype i zacząć czytać ( XHTML 1.0 Strict )

Jeśli nie określisz typu dokumentu, przeglądarka spróbuje odgadnąć, ale nie zawsze trafi w właściwy typ.

Tryb dziwactw to po prostu technika używana przez przeglądarki w celu zapewnienia kompatybilności wstecznej. Świetnym przykładem trybu dziwactw jest sposób, w jaki IE renderuje pudełka


1

Typ dokumentu to dokument opisujący, jak może wyglądać zawartość dokumentu podobnego do xhtml (jak strona internetowa). Uwaga: definiuje tylko składnię wspomnianej strony, renderowanie strony NIE jest zdefiniowane przez DTD!

Na przykład, doctype może definiować, jak <table>może wyglądać -tag - które atrybuty akceptuje i jakie wartości / typy wartości są akceptowane dla każdego atrybutu. Potraktuj to jako leksykon dla swojej bieżącej strony internetowej.

Wikipedia ma stronę informacyjną na temat różnych powszechnie używanych dokumentów. Pamiętaj - nic nie powstrzymuje Cię przed stworzeniem własnego typu dokumentu. Istnieje jednak prawdopodobieństwo, że przeglądarka prawdopodobnie nie wie, jak wyrenderować dokument.

Wybór DTD zależy od tego, co zamierzasz napisać. Na przykład XHTML ma zupełnie inne DTD niż HTML.


1

W Internecie typ dokumentu nie robi nic poza informacją przeglądarki, czy chcesz mieć tryb standardów, prawie standardów lub dziwactw.

Jakie zmiany w trybie dziwactw zależą od przeglądarki: Firefox, Opera, Safari i Chrome implementują ograniczony zestaw dziwactw, takich jak usunięcie miejsca na descentery tekstu w kodzie takim jak <table><tr><td><img></td></tr></table>(rozwiązanie td img { vertical-align:bottom; }:). Z drugiej strony IE powraca do silnika renderującego w IE5.5. Oznacza to, że nie będzie w stanie wykorzystać dowolny z nowych funkcji wprowadzonych od 2000 roku.

Aby uruchomić tryb standardów, sugeruję użycie doctype HTML5 <doctype html>, ponieważ jest najłatwiejszy do zapamiętania.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.