На практиці використання тегів, що закриваються у HTML, має працювати так, як ви очікували. Але якщо ви стурбовані написанням дійсного HTML5, ви повинні зрозуміти, як поводиться використання таких тегів у двох різних двох синтаксичних формах, які ви можете використовувати. HTML5 визначає як синтаксис HTML, так і синтаксис XHTML, які схожі, але не тотожні. Який з них використовується, залежить від типу медіа, надісланого веб-сервером.
Більш ніж ймовірно, ваші сторінки подаються як такі text/html
, що випливає з більш м'яким синтаксисом HTML. У цих випадках HTML5 дозволяє певним початковим тегам мати необов'язковий / до його завершення>. У цих випадках / НЕ є обов'язковим і ігнорується, так <hr>
і <hr />
ідентичні. Специфікація HTML називає ці "недійсні елементи" та дає список дійсних. Власне кажучи, необов'язковий / дійсний лише в початкових тегах цих пустотних елементів; наприклад, <br />
і <hr />
є дійсним HTML5, але <p />
це не так.
Специфікація HTML5 чітко розрізняє те, що є правильним для авторів HTML та розробників веб-браузерів, при цьому для другої групи потрібно прийняти всі види недійсного синтаксису "застарілого". У цьому випадку це означає, що браузери, сумісні з HTML5, прийматимуть незаконні самозакриті теги, як-от <p />
, та надаватимуть їх так, як ви, напевно, очікуєте. Але для автора ця сторінка не буде дійсною HTML5. (Що ще важливіше, дерево DOM, яке ви отримуєте від використання цього виду незаконного синтаксису, може бути серйозно зірвано; самозакриті <span />
теги, наприклад, як правило, сильно псують речі ).
(У незвичайному випадку, коли ваш сервер знає, як надсилати XHTML-файли як тип XML MIME, сторінка повинна відповідати синтаксису XHTML DTD і XML. Це означає, що для тих елементів, визначених як такі , потрібні самозакриваються теги .)