Тег <div>
используется для группировки элементов блока.
Тег <span>
используется для группировки встроенных элементов.
Какой HTML-тег подходит для группировки элементов встроенного блока? <div>
или <span>
или что-нибудь еще? Зачем?
Ваше первоначальное предположение о том, что:
Тег
<div>
используется для группировки элементов блока.
Тег<span>
используется для группировки встроенных элементов.
это неверно.
Элементы div
в спецификации HTML определяются следующим образом:
Элемент
div
не имеет особого значения. Он представляет своих детей. Его можно использовать с атрибутами class, lang и title, чтобы разделить семантику, общую для группы последовательных элементов.
элементы span
определяются следующим образом:
Элемент
span
ничего не значит сам по себе, но может быть полезен при использовании вместе с глобальными атрибутами, например class, lang или dir. Он представляет своих детей.
Важное различие заключается в том, что элемент div
имеет модель контента содержимого потока, в то время как элемент span
имеет модель содержимого фразирования. Модель содержимого родительского элемента определяет, какие дочерние элементы могут содержать родительские элементы.
Не имеет значения, display: inline-block
ли дочерний элемент display: inline-block
, если дочерний элемент не относится к соответствующей модели контента, он не может быть корректно помещен в родительский элемент.
Из-за проблем сопоставимости браузеров с inline-block
(IE6, IE7) и необходимости применения исправления *display:inline; zoom:1;
*display:inline; zoom:1;
получить их в wotk на элементах block
.
Я бы пошел с <span>
, потому что даже IE6% IE7 поддерживает inline-block
когда он применяется к inline
элементам. (исправление необходимо для элементов block
таких как <div>
)
Согласно спецификации HTML, <span>
является встроенным элементом, а <div>
является блочным элементом. Теперь это можно изменить с помощью свойства CSS отображения, но есть одна проблема: с точки зрения проверки HTML вы не можете поместить элементы блока внутри встроенных элементов:
<span>...<div>foo</div>...</span>
не является строго верным, даже если вы измените его на встроенный или встроенный блок.
Итак, если ваш элемент является встроенным или встроенным блоком, используйте <span>
. Если это элемент уровня блока, используйте <div>
.
удачи!
inline-block
. Элемент inline-по-умолчанию, такой какspan
который содержит элемент block-по-умолчанию, такой какdiv
, всегда не является семантическим , независимо от того, какойstyle
вы им предоставляете.div
не допускаются в элементахspan
. Ни один элемент не имеет неявной семантики либо.