Вам нужно закрыть мета и теги ссылок в HTML? - программирование
Подтвердить что ты не робот

Вам нужно закрыть мета и теги ссылок в HTML?

Я просто читал HTML-код, который никогда не закрывал теги мета и ссылок в разделе заголовка HTML. Код работал нормально; закрывает эти теги необязательно?

Я думал, что это будет неверно, если тег не был закрыт.

4b9b3361

Ответ 1

Тег всегда должен быть закрыт символом закрытия тега > (если мы игнорируем определенные правила SGML, которые номинально применяются в не-XHTML HTML, но никогда не были реализованы в браузерах).

Вы хотите спросить, нужно ли закрывать элементы конечными тегами. Ответ заключается в том, что не-XHTML HTML (включая HTML5 в сериализации HTML) конечный тег не требуется или не разрешен для элементов meta и link. Однако на практике браузеры просто игнорируют явные конечные теги для них, а также cargo-cult / before >, если вы их используете. А HTML5 делает эту вседозволенность правилом, даже формально разрешая / в сериализации HTML тоже.

В XHTML применяются правила XML, поэтому каждый элемент без исключения должен иметь как начальный тег, так и конечный тег, но один и тот же тег может использоваться для обеих ролей, если содержимое элемента пустое, например, <meta name="foo" content="bar"/> как сокращение от <meta name="foo" content="bar"></meta>. Если вы нарушаете это при подаче документа с типом содержимого XML (XHTML) в соответствующий браузер, то ваш документ вообще не отображается; вместо этого отображается сообщение об ошибке.

При использовании сервера XHTML с типом содержимого HTML (Content-Type: text/html), поскольку документы XHTML почти всегда находятся в Интернете, браузеры фактически применяют правила HTML, отличные от XHTML.

Подвести итоги:

  • обычно используйте только <meta...> без /
  • если вы действительно используете XHTML в контексте, где на самом деле применяется синтаксический анализ XHTML, играйте по правилам XML (и убедитесь, что вы их знаете)
  • если ваш начальник скажет вам написать <meta.../>, сделайте это; это бесполезно, но не причиняет вреда (кроме случаев, когда вы пытаетесь проверить, например, в соответствии с типом документа HTML 4.01).

Ответ 2

Это зависит от типа doctype. HTML5 не требует закрытия. XHTML делает.

В HTML5 так называемые элементы void (элементы, которые не могут иметь контент) не нуждаются в закрытии, поскольку они самозакрываются. Но это все еще актуально, если вы их закроете.

Подробнее об этом читайте здесь: void-elements