O czym informuje przeglądarkę internetową zapis <!DOCTYPE html>?
Zapis <!DOCTYPE html> informuje przeglądarkę, że dokument ma być interpretowany zgodnie ze standardem HTML5. To nie jest zwykły znacznik HTML, tylko deklaracja typu dokumentu, umieszczana na samym początku pliku, jeszcze przed elementem html. Jej praktyczne znaczenie jest większe, niż się czasem wydaje: przeglądarka dzięki temu przełącza się w tzw. tryb standardowy, czyli renderuje stronę według aktualnych zasad, a nie według starych, zgodnościowych mechanizmów z czasów dawnych przeglądarek. W HTML5 deklaracja jest bardzo krótka i wygląda właśnie tak: <!DOCTYPE html>. W starszych wersjach, na przykład HTML 4.01, deklaracje były dłuższe i zawierały odwołania do DTD. Z mojego doświadczenia warto zawsze wpisywać tę linię jako pierwszy element dokumentu, bo to dobra praktyka branżowa i pomaga uniknąć dziwnych problemów z CSS, układem strony czy działaniem niektórych elementów formularzy. Typowy szkielet strony zaczyna się więc od deklaracji <!DOCTYPE html>, potem jest html, head i body. To taka mała linijka, ale robi porządek już na starcie.
Deklaracja <!DOCTYPE html> bywa mylona z różnymi zasadami składni HTML, ale jej rola jest dość konkretna: mówi przeglądarce, że dokument powinien być traktowany jako HTML5. Nie oznacza ona, że wszystkie znaczniki trzeba pisać wielkimi literami. W HTML-u nazwy elementów są zwykle zapisywane małymi literami, na przykład html, head, body, p, section. Przeglądarki często poradzą sobie z różnym zapisem, ale w praktyce zawodowej i przy walidacji kodu przyjęło się stosować małe litery, bo kod jest czytelniejszy i zgodny z nowoczesnym stylem pisania stron. Nie chodzi tu też o HTML 4. Właśnie HTML 4 używał bardziej rozbudowanych deklaracji typu dokumentu, często z adresem do definicji DTD, więc prosta forma <!DOCTYPE html> jest znakiem rozpoznawczym HTML5. Częsty błąd polega na tym, że ktoś widzi słowo DOCTYPE i zakłada, że to jakaś ogólna informacja o regułach zapisu znaczników, a nie o trybie interpretacji dokumentu. Deklaracja nie wymusza również zamykania każdego znacznika, szczególnie samozamykającego. HTML5 ma własne zasady dotyczące elementów pustych, takich jak img, meta, link czy input, i nie trzeba ich zamykać w stylu znanym z XHTML. Moim zdaniem najłatwiej to zapamiętać tak: <!DOCTYPE html> to sygnał dla przeglądarki: pracujemy w HTML5 i renderujemy stronę w trybie standardowym. Reszta, czyli wielkość liter czy sposób domykania elementów, wynika już z reguł składni i dobrych praktyk, a nie bezpośrednio z samej deklaracji.