2015-05-22 2 views
0

У меня была путаница, я прошел через кодировку страницы, которая написана в jsp, встроенном в html, моя задача - изменить некоторые вещи HTML.Значение заголовка в HTML

В том, что я нашел, есть конечный тег </html>, но разработчик не запустил <head>.

Но страница работает без проблем.

Что мне нужно уточнить, так ли этот подход всегда работает? или есть ли шансы на возникновение проблемы?

Потому что я должен добавить кодирования для поддержки IE9 и кодирования в отношении к реализации бутстрапом

+4

Современные браузеры будут отображать страницу, даже если она не включает в себя все стандартные элементы HTML.Важно включить тег '', потому что он предоставляет полезную информацию, такую ​​как заголовок страницы, метаинформация и таблицы стилей и т. Д. Но браузеру технически не нужен главный тег для отображения страницы. –

+1

Поймите, что то, что браузер сделает для вас, отличается от того, что [спецификация HTML для ''] (http://www.w3.org/TR/html5/document-metadata.html#the-head-element) призывает. В особых случаях вам не нужно '', но при нормальных обстоятельствах это необходимо. Если вы разрешите браузеру делать то, что ему нравится, с отсутствующим, но необходимо «», то вы полагаетесь на поведение браузера, которое может отличаться от поставщиков и со временем может меняться. – ajp15243

ответ

1

Correction, в HTML5, вам не нужен <head /> но вам нужен <title />, если этот HTML не для IFrame или что-то вроде электронной почты:

Если документ является IFrame srcdoc документ или если название информация доступна из протокола более высокого уровня: Ноль или более элементов контента метаданных, из которых не более одного является элементом заголовка и не имеет более чем один является базовым элементом. В противном случае: один или несколько элементов содержимого метаданных , одним из которых является элемент заголовка и не более , чем один из них является базовым элементом.

Так что это неправда HTML, но браузеры, к лучшему или худшему, позволяют разработчикам уйти с большим количеством дерьма. Если вы поддерживаете устаревшие браузеры, все может стать странным, если вы опустите голову.

Таким образом, оба следующих документа считаются действительными документами HTML5.

<!DOCTYPE html> 
<html> 
    <head> 
    <title>Title</title> 
    </head> 
</html> 

<!-- Valid HTML5, but not valid HTML4 --> 
<!DOCTYPE html> 
<html> 
    <title>Title</title> 
</html> 

Вы можете проверить это с помощью W3C's Markup Validator.

Вот полные данные о упущениях в HTML5:

  • открывающий тег HTML-элемент может быть опущен, если первое, что внутри элемента HTML не комментарий.
  • Конечный тег элемента html может быть опущен, если элемент html не сразу следует комментарию.
  • Начальный тег элемента заголовка может быть опущен, если элемент пуст, или если первое, что находится внутри элемента head, является элементом.
  • Конечный тег элемента головки может быть опущен, если за элементом головы не следует сразу пробел или комментарий.
  • Начальный тег элемента тела может быть опущен, если элемент пуст или если первое, что находится внутри элемента body, не является символом пробела или комментарием, за исключением случаев, когда первое, что находится внутри элемента body, является сценарием или стиль.
  • Конечный тег элемента тела может быть опущен, если элемент тела не сразу следует комментарию.
+0

Я знаю об основных элементах HTML, мне пришлось изменить файл, который был создан другим разработчиком, тогда я получаю эту путаницу. поэтому прояснить это может быть полезно для меня продолжить работу – Kuru

+0

Вы можете * получить ошибки в некоторых старых браузерах, поэтому было бы разумно добавить их на всякий случай. Также никогда не бывает хорошей практики иметь неопрятный и ошибочный код, лежащий вокруг в чем-то, что используется в производстве, особенно если вы считаете себя профессионалом. – fny

Смежные вопросы