Нововведення специфікації HTML5 численні, і багато з них вже підтримуються більшістю середовища браузера - нижче я хочу підкреслити цікаву зміну правил вкладання елементів. HTML завжди розрізняв блокові та вбудовані елементи. Визначення типу документа HTML4, наприклад, називає h1, p та div як елементи блоку, а a, span, img як вбудовані елементи.
Зараз від цієї концепції відмовились (з поважних причин). У деяких випадках використання багато веб-дизайнерів ігнорували правильність згаданого правила вкладеності, що жоден елемент блоку не може бути розміщений в межах вбудованих елементів або стандартної поведінки, використовуючи правила CSS, такі як display: inline; або дисплей: блок; (що часто призводило до недійсного коду) без зайвих слів.
Зараз HTML5 пом’якшує цю відмінність і навіть називає 9 різних категорій, до яких може належати елемент, завдяки чому елемент може бути в декількох категоріях. Стара різниця між блочними та вбудованими елементами викидається за межі і враховується безліч значень тегів в Інтернеті. Зокрема, це має наслідком, що наступні конструкції представляють дійсний код:
<a href="#">
<div>
<h1>Yeah</h1>
<p>
Der ganze Block ist verlinkt.
</p>
</div>
</a>
Раніше цілий контейнер, що містить додаткові елементи блоків, був можливий лише (з дійсним кодом), використовуючи фокуси (наприклад, шляхом абсолютного позиціонування пов'язаного шару накладання). Крім того, ви пов’язали заголовок та абзац - це, в свою чергу, призвело до надмірності, і контейнер не можна натискати. З вітальним доповненням до HTML5 це вже не проблема.