Подтвердить что ты не робот

Можно ли опустить теги</TD> и</TR>?

В соответствии с w3c </TD> и </TR> теги являются необязательными, поэтому приведенная ниже таблица отлично подходит.

<table>
  <tr>
    <td>google
    <td>chrome
</table>

И все браузеры, которые я тестировал, отображали таблицу отлично. Я просто хотел спросить, считается ли это вообще безопасным для использования, или если старые браузеры, к которым у меня нет доступа, вызывают проблемы. Спасибо.

Он уменьшает размер gzip html на странице со многими таблицами на несколько процентов.

4b9b3361

Ответ 1

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

Сказав это, я считаю, что исключение таких тегов затрудняет чтение, что может или не важно для вас, если целью является оптимизация размеров.

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

Ответ 2

Это допустимый HTML, но недействительный XHTML.
Ничего в этом нет ничего плохого.

Если вы посмотрите на источник Политики конфиденциальности Google (или на любой другой странице), вы найдете много HTML-кода.

Это означает, что ваша страница не будет использоваться XML-парсером.

Ответ 3

Я настоятельно рекомендую не делать этого, хотя он действителен в HTML4 (и 5). Экономия пропускной способности минимальна по сравнению с технической задолженностью, которую вы несете. Также имейте в виду, что это неверно в XHTML, поэтому убедитесь, что ваш doctype установлен соответствующим образом.

Ответ 4

С самого начала были добавлены дополнительные теги в HTML - это функция, унаследованная от SGML, и поэтому ранние браузеры, должно быть, имели дело с ними. Хотя XHTML отошел от этого и потребовал гораздо более равномерный синтаксис, это не повлияет на вас, если вы явно не скажете браузеру разбора в режиме XML. Ive никогда не видел проблемы при использовании стандартных парсеров HTML 4/5.

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

И хотя экономия пространства незначительна, я считаю, что отказ от закрывающих тегов <p>, <li>, <td> и <tr> просто упрощает мою жизнь, когда Im работает в разметке и делает у меня меньше шансов сделать ошибку.

Ответ 5

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

Тег конца элемента td может быть опущен, если за элементом td сразу следует td или th элемент, или если в родительском элементе больше нет содержимого.

Ответ 6

Советую всегда закрывать теги. Там не слишком хорошо повода, чтобы не делать этого. Браузеры могут обрабатывать некоторые неправильно закрытые теги, но просто чтобы быть в безопасности (и это хорошая практика программирования!), Закройте теги!

Ответ 7

Всегда закрывайте теги!

Ответ 8

Закройте все теги в HTML по нескольким причинам:

  • Нельзя закрыть теги, но это не правильно современный XHTML. Он много устарел так же, как атрибуты стиля HTML в пользу CSS
  • Это более читаемый для следующего парня, если вы закроете теги
  • Браузеру на самом деле будет легче анализировать ваш источник, если он будет строго придерживаться правил, даже если это делает источник более длинным

Ответ 9

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

Ответ 10

Его Ok со статическими страницами не для динамических страниц... для отладки

Ответ 11

Если возможно, вы должны закрыть теги <TR> и <TD>, но НЕ ВСЕГДА, потому что в некоторых сценариях это может вас беспокоить. Это связано с тем, что теги <TR> и <TD> могут быть в стиле display:none, в то время как тег </TR> не мог. Это означает, что сценарий, в котором вы хотите расширить/ограничить отображение мультимедийными запросами, не удастся, если вы используете </TR>. Рассмотрим следующий код:

<style>
@media (max-width : 480px) {
.hidden-class {display:none;}
}
</style>

<table>
   <tr>
      <td>cell 1</td>
   </tr class="hidden-class">  <!-- this will fail! -->
   <tr class="hidden-class">
      <td>cell 2</td>
   </tr>                       <!-- this could stay -->
</table>

Это означает, что вы должны записать его как:

 <table>
   <tr>
      <td>cell 1</td>
   </tr>  <!-- this will now close the TR for every screen width, which will destroy your extenstion -->
   <tr class="hidden-class">
      <td>cell 2</td>
   </tr>                       <!-- this could stay -->
</table>

Это означает, что единственный способ сделать это - ОЧИТЬСЯ в первую очередь:

     <table>
   <tr>
      <td>cell 1</td>
   <tr class="hidden-class">
      <td>cell 2</td>
   </tr>                       <!-- this could stay -->
</table>