Недавно я провел дискуссию с коллегой, который утверждал, что <div>
тег должен использоваться поверх <p>
тега при форматировании абзацев.
Дело против использования <p>
заключается в том, что он создает нерегулярный интервал между браузерами и, вероятно, станет устаревшим, как <b>
тег.
Является ли это мнение <p>
тега общим для сообщества?
<b>
(и<i>
в этом отношении) далеко не устарели. Проверьте спецификацию HTML5.<strong>
и<em>
всегда следует использовать для акцента.<b>
и<i>
в этом отношении устарели, но они имеют законное, хотя и ограниченное, использование в HTML5.Ответы:
div
s иp
s для совершенно разных целей.p
для абзацев,div
для секционных делений. Один для форматирования текста, другой для структуры страницы. Семантически некорректно использоватьdiv
вместоp
.И причина, по которой
b
это не рекомендуется, заключается в том, что это тег представления. Это не имеет смыслового значения. Обаp
иdiv
имеют свои уникальные смысловые значения.p
никогда не устареет, пока люди все еще форматируют текст в абзацы.Ваш коллега, похоже, не знаком с принципом разделения контента и представления . В противном случае он знал бы, почему
b
это отвратительно, и что такие проблемы с представлением, как интервал между текстом, должны быть определены в CSS, а не в вашем HTML.источник
p { margin: 1em 0 }
делает весь этот вопрос спорным.<b>
имеет теперь семантическое значение: «Элемент b представляет собой область текста, на которую обращается внимание в утилитарных целях, без передачи какой-либо дополнительной важности и без использования альтернативного голоса или настроения, таких как ключевые слова в аннотации документа, названия продуктов в обзоре, полезные слова в интерактивном текстовом программном обеспечении или статья ". ( источник )<p>
и<div>
не предназначены для той же цели, так как имеют другое семантическое значение:<p>
для абзаца,<div>
"предложить общий механизм для добавления структуры к документам", как указано в спецификации HTML div от W3C<p>
возможно, не рекомендуется в будущем, поскольку он все еще присутствует в XHTML и HTML 5.Оба тега имеют различную графическую визуализацию. A
<p>
имеет верхнее и нижнее поле 1em, тогда как у a<div>
вообще нет поля. Но этот момент вторичен, так как он может быть переопределен CSS.Также обратите внимание на это различие: хотя оба тега имеют тип «блок», они
<div>
могут содержать только другие элементы блока. Таким образом:<p><p> bla </p></p>
неправильно, в то время как<div><div> bla </div></div>
в порядкеВажно помнить, что оба являются действительными и используемыми тегами, но не для одной цели.
источник