HTML: включить или исключить необязательные закрывающие теги? - PullRequest
149 голосов
/ 09 июня 2010

Некоторые HTML 1 закрывающими тегами являются необязательные , т.е.:

</HTML>
</HEAD>
</BODY>
</P>
</DT>
</DD>
</LI>
</OPTION>
</THEAD>
</TH>
</TBODY>
</TR>
</TD>
</TFOOT>
</COLGROUP>

Примечание: Непутать с закрывающими тегами, которые запрещено включать, т. е.:

</IMG>
</INPUT>
</BR>
</HR>
</FRAME>
</AREA>
</BASE>
</BASEFONT>
</COL>
</ISINDEX>
</LINK>
</META>
</PARAM>

Примечание: xhtml отличается от HTML.xhtml - это форма xml, которая требует, чтобы каждый элемент имел закрывающий тег.Закрывающий тег может быть запрещен в html, но обязателен в xhtml.

Являются ли дополнительные закрывающие теги

  • в идеале включены , но мы примем их, если вы их забыли, или
  • в идеале не включены, но мы примем их, если вы введете их в

Другими словами, должен включить их или я должен не включить их?

Спецификация HTML 4.01 говорит о закрытии элементатеги необязательны , но не говорят, предпочтительнее ли включать их или предпочтительнее не включать их.

С другой стороны, случайная статья на DevGuru гласит :

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

Причина, по которой я спрашиваю, состоит в том, что вы просто знаете , это необязательно по соображениям совместимости;и они бы сделали их ( обязательные | запрещенные ), если бы могли.

Другими словами: что сделал HTML 1, 2, 3 в отношениик этим, теперь необязательным, закрывающим тегам.Что делает HTML 5?И что должен I делать?

Примечание

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

Сноски

1 HTML 4.01

Ответы [ 14 ]

1 голос
/ 09 июня 2010

В некоторых языках фигурных скобок, таких как C #, вы можете опустить фигурные скобки вокруг оператора if, если длина его всего две строки. например ...

if ([условие])
[Код]

но вы не можете сделать это ...

if ([условие])
[код]
[код]

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

по тем же причинам, я закрываю все теги. теги, такие как тег img, по-прежнему нужно закрывать, но не с помощью отдельного закрывающего тега.

0 голосов
/ 09 июня 2010

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

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

0 голосов
/ 09 июня 2010

Для запрещенных типов закрытия используйте синтаксис, такой как: <img /> С />, чтобы закрыть тег, принятый в xml

0 голосов
/ 09 июня 2010

Делайте все, что чувствуете, чтобы сделать код более читабельным и понятным.

Лично я всегда был бы склонен закрывать <td> и <tr>, но я бы никогда не стал беспокоиться о <li>.

...