Co to jest DOCTYPE?

  • Czym jest DOCTYPE i dlaczego chcę go używać?
  • Jakie są różne typy dokumentów, których mogę użyć?
  • Jaka jest różnica między standardem a trybem dziwactw i jakie dziwactwa mogę napotkać z różnymi ustawieniami Doctypów?

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

Author: Jukka K. Korpela, 2009-01-06

9 answers

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

Przeglądarki używają również DOCTYPE do określenia sposobu renderowania strony. Nie włączając DOCTYPE lub włączając niepoprawny DOCTYPE może wywołać tryb quirks. Kicker polega na tym, że tryb dziwactwa w Internet Explorerze różni się od trybu dziwactwa w Firefoksie( i innych przeglądarkach), co oznacza, że będziesz mieć dużo trudniejszą pracę, starając się upewnić, że strona działa konsekwentnie we wszystkich przeglądarkach, jeśli strony są renderowane w trybie quirks niż będzie, jeśli są one renderowane w trybie standards.

Wikipedia ma bardziej szczegółowe podsumowanieróżnic w renderowaniu przy użyciu różnych typów Doctyp . XHTML jest włączany przez pewne doctypy, i jest sporo dyskusji na temat używania XHTML, który jest dobrze omówiony w XHTML - mity i rzeczywistość .

Istnieją subtelne różnice pomiędzy różnymi" standardami " renderowania DOCTYPE, np. doctype HTML5 (<!DOCTYPE html>, przed HTML5 znany tylko jako "skinny doctype", który nie uruchamia standardowego renderowania w starszych przeglądarkach) i inne Doctypy, takie jak ten dla HTML 4.01 transitional:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 71
Author: Walter Rumsby,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-06-10 00:04:05

DOCTYPE mówi użytkownikowi (przeglądarkom internetowym, gąsienicom internetowym, narzędziom walidacji), jakiego typu jest dokument. Korzystanie z niego zapewnia, że konsument poprawnie przetwarza HTML zgodnie z jego przeznaczeniem.

Istnieje kilka różnych typów dokumentów dla HTML, XHTML i Framesetów, a każdy z nich ma dwa tryby Strict i Transitional. Strict mówi, że Twoje znaczniki używają dokładnie zdefiniowanych standardów. Więcej informacji można znaleźć na stronie W3C DTDs.

Quirksmode jest zasadniczo metoda układu z czasów wojen przeglądarek, kiedy standardy były znacznie mniej przestrzegane i zdefiniowane. Ogólnie strona trybu standardowego, która jest poprawna, będzie układać się bardziej spójnie w różnych przeglądarkach, ale może nie mieć pewnych funkcji, których potrzebujesz. Jedną z takich cech jest atrybut docelowy znacznika kotwicy. Strona Quirksmode jest świetnym źródłem tych różnic.

Ostatnią myślą jest to, że nowy standard HTML5 proponuje użycie bardzo prostego DOCTYPE:

<!DOCTYPE html>

Używanie tego typu DOCTYPE jest zgodnym z forward sposobem określenia, że Twoje strony są w trybie standardów i są HTML. Jest to metoda, której używa Google i jest dość łatwa do zapamiętania. Polecam używanie tego DOCTYPE, chyba że planujesz używać XHTML.

 24
Author: Rob,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-09-17 03:55:16

Doctype określa, której wersji HTML / XHTML używa twój dokument. Chcesz użyć doctype, aby podczas uruchamiania kodu przez walidatory, walidatory wiedzą, która wersja HTML/XHTML ma być sprawdzana. Ta strona zapewnia dobry przegląd:

Nie zapomnij dodać doctype

Typowe typy dokumentów, których możesz użyć, są wymienione tutaj:

Rekomendowana lista DTD

Jaki doctype powinieneś wybrać zależy od używanego kodu, ale aby dowiedz się, spróbuj uruchomić kod przez walidator W3C i użyj rozwijanego menu typ dokumentu w menu "Więcej opcji", aby wypróbować różne typy dokumentów.

W3C Markup Validation Service

 6
Author: ,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-01-06 01:52:06

W HTML (w tym XHTML), używanym na stronach internetowych, DOCTYPE jest ciągiem znaków, który uruchamia jeden z kilku trybów przeglądarki (tryb quirks, tryb standards, tryb almost standards), 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 cokolwiek lub nawet dostęp do nich. Jednak są one używane przez walidatory znaczników SGML i XML, takie jak walidator znaczników W3C, 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 interfejsie użytkownika. (Procesory SGML i XML mogą również używać Doctypów na różne inne sposoby, ale najwyraźniej pytanie ma być ograniczone do kontekstu HTML i do sieci przeglądarki i ściśle powiązane oprogramowanie.)

Nie ma miarodajnej listy Doctypów. Każda specyfikacja HTML lub szkic definiuje swój własny DOCTYPE lub DOCTYPEs. Zestaw typów dokumentów rozpoznawanych 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> jak zdefiniowano w HTML5, chociaż HTML5 zawiera również kilka "starszych typów dokumentów". Możesz użyć tego DOCTYPE, jeśli chcesz trybu standardów (zalecanego dla nowych stron) i użyć no DOCTYPE, jeśli chcesz tryb quirks (który może być potrzebny do starszych stron).

"Tryb standardów" ogólnie oznacza tryb działania, w którym przeglądarka postępuje zgodnie z HTML, CSS, DOM i innymi specyfikacjami najlepiej jak potrafi. Zazwyczaj nie oznacza to pełnej zgodności. "Tryb dziwactwa" jest różny w różnych przeglądarkach, ale ogólnie oznacza próbę naśladowania zachowania bardzo starych przeglądarek, takich jak IE 5. Celem jest utrzymanie pracy starych stron przy założeniu, że mogą one polegać na funkcjach i błędach w stare przeglądarki. Zobacz opis co dzieje się w trybie dziwactwa? zauważ, że istnieje dość inna, bardziej ograniczona koncepcja "trybu dziwactwa" w HTML5, który bardzo przypomina dokument o nazwie tryb dziwactwa standard życia .

Typowym problemem jest to, że szerokości elementów są obliczane inaczej w trybie dziwactwa i w trybie standardów. 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 dziwactwa jest oglądany w trybie standardowym (lub odwrotnie).

Więc powinieneś użyć <!DOCTYPE html> dla nowych stron i zachować dowolny DOCTYPE (jeśli w ogóle), którego używałeś dla starych stron.

Jednak tryb quirks oznacza w niektórych przeglądarkach, że wiele nowych funkcji CSS nie jest wspieranych. Oznacza to, że jeśli chcesz ulepszyć starą stronę za pomocą funkcji CSS3, konieczne może być przełączenie na DOCTYPE, który uruchamia tryb standardów. W takim przypadku musisz przejrzeć i przetestować stronę, aby sprawdzić, czy będzie uruchom w trybie standardowym.

 3
Author: Jukka K. Korpela,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-01-15 15:19:59

Doctypes 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 używały do nieprawidłowego renderowania stron i dlatego nowsze przeglądarki symulują błędy starszych przeglądarek, gdy znajdują Stary doctype.

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

Wpis na blogu o doctypes jest napraw swoją stronę za pomocą odpowiedniego DOCTYPE! (od A List Apart ).

 2
Author: Georg Schölly,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-10-28 08:23:10

Przede wszystkim nie ma jednego doctype, 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, jakich tagów możesz użyć w swoim html (chociaż przeglądarki mogą używać mniej lub bardziej niż to, co jest zdefiniowane) możesz otworzyć plik doctype i rozpocząć czytanie (XHTML 1.0 Strict)

Jeśli nie podasz doctype, przeglądarka spróbuje odgadnąć, ale nie zawsze trafi w poprawny Typ.

Tryb dziwactwa jest tylko techniką używaną przez przeglądarki do wstecznej kompatybilności, doskonałym przykładem trybu dziwactwa jest to, jak IE renderuje pola

 1
Author: Ólafur Waage,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-01-05 23:32:57

W sieci, doctype nic nie robi, ale informuje przeglądarkę, jeśli chcesz standardy, prawie standardy, lub tryb dziwactwa.

Jakie zmiany w trybie dziwactw zależą od przeglądarki: Firefox, Opera, Safari i Chrome implementują ograniczony zestaw dziwactw, takich jak usuwanie miejsca na descendery tekstu w kodzie, takim jak <table><tr><td><img></td></tr></table> (rozwiązanie: td img { vertical-align:bottom; }). IE, z drugiej strony, powraca do silnika renderującego w IE5. 5. Oznacza to, że nie będziesz mógł używać żadnej z nowych funkcji zaimplementowanych od 2000.

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

 1
Author: Ms2ger,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-01-06 18:31:39

Deklaracja nie jest znacznikiem HTML; jest instrukcją dla przeglądarki internetowej o tym, w jakiej wersji HTML jest napisana strona.

W HTML 4.01 deklaracja odnosi się do DTD, ponieważ HTML 4.01 był oparty na SGML. DTD określa reguły dla języka znaczników, tak aby przeglądarki renderowały zawartość poprawnie.

 1
Author: ancevinz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-04-06 06:04:17

Doctype jest dokumentem opisującym, jak może wyglądać zawartość dokumentu podobnego do XHTML (jak strona internetowa). Uwaga: To definiuje tylko składnię wspomnianej strony, renderowanie strony nie jest zdefiniowane przez DTD!

Na przykład, Typ doctype może definiować, jak może wyglądać znacznik <table>-które atrybuty akceptuje i które wartości / typy wartości są akceptowane dla każdego atrybutu. Pomyśl o tym jak o leksykonie dla Twojej obecnej strony internetowej.

Wikipedia ma Strona informacyjna na temat różnych typów dokumentów, które są w powszechnym użyciu. Pamiętaj - nic nie powstrzymuje cię przed stworzeniem własnego doctype. Istnieje jednak szansa, że przeglądarka prawdopodobnie nie wie, jak renderować dokument.

Jakiego DTD użyć zależy od tego, co napiszesz. Na przykład XHTML ma zupełnie inny DTD niż HTML.

 0
Author: Henrik Paul,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-01-05 23:37:42