Является ли эта минималистская разметка HTML5 действительной?
<!DOCTYPE html>
<meta charset="utf-8">
<body>
Hello, world!
Если это так, кроме удаления "Привет, мир!" есть ли тег, который можно удалить, и он все еще будет действительным, и как вы узнаете, что он все еще действителен?
4 ответа
Это не действительно. Чтобы проверить это, вы можете запустить его в W3C Validator
Ошибка: в заголовке элемента отсутствует обязательный экземпляр заголовка дочернего элемента.
...
ОБНОВИТЬ
Как заявил vcsjones head
Элемент не является обязательным. Это title
один требуется. Благодарю mootinator за указание на то, что body
также необязательно.
Таким образом, самый простой действительный документ будет:
<!DOCTYPE html>
<title></title>
(Предполагая HTML-синтаксис HTML5.)
Обратите внимание, что в некоторых ситуациях title
элемент тоже необязательный.
Из определения HTML5 head
:
title
элемент является обязательным дочерним элементом в большинстве ситуаций, но когда протокол более высокого уровня предоставляет информацию о заголовке, например, в строке "Тема" электронного письма, когда HTML используется в качестве формата создания электронного письма,title
элемент может быть опущен.
Таким образом, минимальная разметка для документа, который получает заголовок из "протокола более высокого уровня", такова:
<!DOCTYPE html>
Если документ является значением iframe
- srcdoc
вот это (при условии, что заголовок предоставлен документом контейнера):
<html>
И для отдельного документа это (title
элемент нуждается в некотором фактическом содержании, как отметил kapep, поэтому "…" это просто пример):
<!DOCTYPE html>
<title>…</title>
Тег заголовка не может быть пустым или состоять только из пробелов. Поэтому, если документ находится в контексте, где требуется тег заголовка, вам нужно будет установить допустимое значение заголовка.
Модель содержимого заголовка определяется как "Текст, который не является пробелом между элементами".
"Пустые текстовые узлы и текстовые узлы, состоящие только из последовательностей [пробельных символов]" являются межэлементными пробелами. Пробелами являются пробел, табуляция, перевод строки, перевод формы и возврат каретки.
Если тег заголовка пуст, W3C Validator жалуется, что "Заголовок элемента не должен быть пустым". Валидатор подходит только для добавления только пробелов, хотя это не правильно в соответствии со спецификациями.
Это допустимо, если вы добавите еще один непробельный символ:
<!DOCTYPE html>
<title>x</title>
Вы можете использовать другие пробельные символы, такие как пробел без пробелов или пробел нулевой ширины, если вы хотите подделать "пустой" заголовок.
Самый маленький HTML-документ, для которого Nu Html checker (единственный HTML-валидатор, в настоящее время одобренный WHATWG) не выдает никаких ошибок или предупреждений, следующий:
<!DOCTYPE html>
<html lang="">
<title>x</title>