TGViewer
Дивовижний світ веброзробки Дивовижний світ веброзробки @babichdev · 2.91K subscribers
Post #81 2K
DOCTYPE писати не треба!
Саме так я вважав досить тривалий час: ніби ж HTML5 і так тепер скрізь за замовчанням, бравзери розумні, самі розберуться, хіба ні?

Я не міг помилятися більше.

DOCTYPE — це особлива декларація, яка пояснює бравзеру, за яким саме стандартом треба обробляти конкретний документ. Сьогодні він має виглядати як <!DOCTYPE html>, і цього цілком достатньо, аби бравзер знав — обробляти html треба за останнім писком моди.

Раніше ж ця декларація мала наступний вигляд:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">


І вказувала який конкретно стандарт використовується і, мало того, містила пряме посилання на DTD, Document Type Definiton, набір інструкцій для бравзера, які описують як обробляти ті чи інши теги. Ці посилання активні й зараз, і ви можете почитати, що ж там такого пише.

Так от, а що ж станеться, якщо не вказати DOCTYPE?
Тоді буде увімкнено quirks mode: режим рендерингу, в якому імітується поведінка старих бравзерів для забезпечення сумісності з застарілими веб-сторінками. Це означає, що бравзер може відображати сторінку з помилками чи некоректно інтерпретувати сучасний CSS.

А от якщо ти поставиш вподобайку цьому допису, то ніякий quirks mode твою верстку не зламає.


Це може призвести до багатьох "цікавих" наслідків, серед яких можлива неправильна обробка семантичних елементів, що може суттєво впливати на доступність, чи застосовуватись якісь CSS-хаки з доісторичних часів, через що непередбачувано попливуть ваші стилі, і ще всілякі інші сюрпризи.

І от саме тому вказувати DOCTYPE в документі зараз важливо, як ніколи, якщо ми хочемо, аби бравзер правильно обробляв його, ми могли використовувати найсучасніші можливості HTML та CSS, і нам не боліла голова через кросбравзерність (вірніше її відсутність). Якщо коротко — DOCTYPE це єдиний спосіб гарантувати, що бравзер працює в сучасному стандартному режимі, а не перетворюється на симулятор Internet Explorer 5.

Спробуйте відкрити свою стару верстку без <!DOCTYPE html> — і розкажіть в коментарях, наскільки все поїхало. Або не поїхало 😉

MDN: Understanding quirks and standards modes

@babichdev

***
Збір на РЕБ для 109 ОГШБ 10 ОГШБр «Едельвейс» триває, і ми вже перетнули позначку в 50 000 грн! Нагадую, кожні 50 грн — шанс виграти подарунок і допомогти ЗСУ.
  • ❤ 71
  • 🔥 21
  • 👏 5
More from @babichdev
  1. Sep 30, 2026Товариство, запрошую вас цієї суботи, 3 жовтня, на Fwdays Tech Summit — онлайн конференцію…
  2. Sep 28, 2026#збір_на_авто_для_21 Товариство, почнімо тиждень з доброго діла. Я би дуже хотів, аби ми ц…
  3. Sep 27, 2026Знайшов своє старезне резюме. Аж пустив скупу сльозу за тими часами, коли навіть з таким м…
  4. Sep 25, 2026Днями на редіті побачив допис, в якому автор питав, чому його лічильник часу на сторінці з…
  5. Sep 23, 2026Який ШІ найкращий для навчання? Відповідь проста — той, з яким ви чогось навчились. ШІ це…
  6. Sep 18, 2026Оце я, канєшна, провтикав. Конфа завтра, 19 вересня. Ще встигаєте взяти квиточок.
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →