Какой HTML-тег подходит для стиля встроенных блоков? div или span?

0

Тег <div> используется для группировки элементов блока.
Тег <span> используется для группировки встроенных элементов.

Какой HTML-тег подходит для группировки элементов встроенного блока? <div> или <span> или что-нибудь еще? Зачем?

  • 2
    Это зависит от того, какие теги используются в элементах inline-block . Элемент inline-по-умолчанию, такой как span который содержит элемент block-по-умолчанию, такой как div , всегда не является семантическим , независимо от того, какой style вы им предоставляете.
  • 0
    @Itay, элементы div не допускаются в элементах span . Ни один элемент не имеет неявной семантики либо.
Показать ещё 3 комментария
Теги:

4 ответа

2
Лучший ответ

Ваше первоначальное предположение о том, что:

Тег <div> используется для группировки элементов блока.
Тег <span> используется для группировки встроенных элементов.

это неверно.

Элементы div в спецификации HTML определяются следующим образом:

Элемент div не имеет особого значения. Он представляет своих детей. Его можно использовать с атрибутами class, lang и title, чтобы разделить семантику, общую для группы последовательных элементов.

элементы span определяются следующим образом:

Элемент span ничего не значит сам по себе, но может быть полезен при использовании вместе с глобальными атрибутами, например class, lang или dir. Он представляет своих детей.

Важное различие заключается в том, что элемент div имеет модель контента содержимого потока, в то время как элемент span имеет модель содержимого фразирования. Модель содержимого родительского элемента определяет, какие дочерние элементы могут содержать родительские элементы.

Не имеет значения, display: inline-block ли дочерний элемент display: inline-block, если дочерний элемент не относится к соответствующей модели контента, он не может быть корректно помещен в родительский элемент.

1

Из-за проблем сопоставимости браузеров с inline-block (IE6, IE7) и необходимости применения исправления *display:inline; zoom:1; *display:inline; zoom:1; получить их в wotk на элементах block.

Я бы пошел с <span>, потому что даже IE6% IE7 поддерживает inline-block когда он применяется к inline элементам. (исправление необходимо для элементов block таких как <div>)

1

Согласно спецификации HTML, <span> является встроенным элементом, а <div> является блочным элементом. Теперь это можно изменить с помощью свойства CSS отображения, но есть одна проблема: с точки зрения проверки HTML вы не можете поместить элементы блока внутри встроенных элементов:

<span>...<div>foo</div>...</span>

не является строго верным, даже если вы измените его на встроенный или встроенный блок.

Итак, если ваш элемент является встроенным или встроенным блоком, используйте <span>. Если это элемент уровня блока, используйте <div>.

удачи!

0

Оба являются общими оболочками, но учитывая, что span по умолчанию div а div по умолчанию является блоком, div будет более подходящим для хранения элементов с помощью правила CSS с inline-block.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню