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

В HTML4 и HTML5 есть ряд тегов HTML, которые не требуют использования закрывающего тега для действительного HTML. Они есть:

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

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

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

Другие теги в этом списке не всегда имеют содержимое, например. Этот элемент может содержать теги, такие как, но не обязательно. Если colgroup не содержит никаких тегов col, пропуск закрывающего тега не вызывает путаницы — в большинстве случаев количество столбцов будет определяться атрибутом span.

Отсутствие конечных тегов ускоряет ваши страницы

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

Но не всегда хорошо закрывать теги

Есть несколько важных причин, чтобы оставить в закрывающих тегах.

  • Закрывающие теги обеспечивают структуру.
    • Когда у вас есть HTML-документ, который минимально закодирован, он может быстро загрузиться, но он может быстро стать медвежьим в обслуживании. Добавление новых строк или столбцов таблицы может быть намного сложнее сделать быстро без полной структуры начального и конечного тегов. И часто люди решают эту проблему с помощью отступа, который добавляет символы обратно в документ, тем самым сводя на нет преимущества в скорости, которые вы получили, оставляя их вне.
  • CSS и JavaScript зацепляют полные элементы.
    • Хотя большинство браузеров могут отображать (и стилизовать) теги без закрывающих тегов, отсутствие закрывающих тегов может сделать определенное место для закрытия стиля или действия скрипта менее понятным. Если вы работаете с очень точными макетами, вы теряете контроль над точностью, когда пропускаете закрывающие теги — вы позволяете браузеру решать, где заканчивается тег. Иногда браузеры угадывают правильно, а иногда нет.
  • Пропуск закрывающих тегов не всегда разрешен.
    • В HTML5
    • тег может быть опущен, когда сразу за абзацем следуют около 25 различных элементов. Но в HTML5 более 100 элементов. Собираетесь ли вы запоминать каждую ситуацию, которую можно оставить за пределами конечного тега? Вероятно, проще просто включить это.

    XHTML требует все закрывающие теги

    Основная причина, по которой большинство людей используют закрывающие теги с этими элементами, — XHTML. Когда вы пишете XHTML, закрывающие теги всегда требуются. Если вы планируете конвертировать ваши веб-документы в XHTML в любой момент в будущем, проще всего включить закрывающие теги, чтобы ваши документы были готовы.

    Ссылка на основную публикацию