Существует два различия между элементами div
и span
:
-
div
имеет display:block
по умолчанию, в то время как span имеет display:inline
по умолчанию. div
является блочным элементом и может содержать блочные элементы и встроенные элементы, тогда как span
является встроенным элементом и может содержать только другие встроенные элементы.
Как только вы применитеdisplay:inline-block
они ведут себя одинаково.
Когда код HTML анализируется, стиль не учитывается.Хотя вы можете изменить стиль display
, чтобы элементы вели себя одинаково, вы все равно должны следовать правилам в коде HTML.
Это, например, допустимо:
<div>
<div>
<span></span>
</div>
<span></span>
</div>
Например, это недопустимо:
<span>
<div>
<span></span>
</div>
<div></div>
</span>
Браузер попытается изменить расположение элементов в недопустимом коде, что обычно означает, что он перемещает элементы div
за пределы элементов span
.Поскольку в спецификации HTML (до версии 5) сообщалось только о том, как следует обрабатывать правильный код, у каждого браузера есть свой способ обработки неправильного кода.