Когда встроенный блок содержит блок уровня блока в потоке, встроенный блок (и его встроенные предшественники в одном и том же линейном блоке) разбиваются вокруг блока уровня блока (и любых братьев и сестер уровня блока, которые являются последовательными или разделяются только разборными пробелами и / или элементами вне потока), разделяя встроенный блок на два блока (даже если одна из сторон пуста), по одному на каждой стороне блока (блоков) уровня блока. Строковые блоки до перерыва и после перерыва заключаются в анонимные блочные блоки, и блок уровня блока становится родственным из этих анонимных блоков. Когда на такой встроенный блок влияет относительное позиционирование, любой результирующий перевод также влияет на блок уровня блока, содержащийся во встроенном блоке.
Эта модель будет применяться в следующем примере, если соблюдены следующие правила:
p { display: inline }
span { display: block }
были использованы с этим документом HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HEAD>
<TITLE>Anonymous text interrupted by a block</TITLE>
</HEAD>
<BODY>
<P>
This is anonymous text before the SPAN.
<SPAN>This is the content of SPAN.</SPAN>
This is anonymous text after the SPAN.
</P>
</BODY>
Элемент P содержит фрагмент (C1) анонимного текста, за которым следует элемент уровня блока, за которым следует еще один фрагмент (C2) анонимного текста. Получающиеся блоки будут представлять собой блок-блок, представляющий ТЕЛО, содержащий блок анонимного блока вокруг С1, блок блока SPAN и еще один блок анонимного блока вокруг С2.
Свойства анонимных ящиков наследуются от включающего неанонимного ящика (например, в примере чуть ниже подраздела «Анонимные блочные ящики», который предназначен для DIV). Унаследованные свойства имеют свое начальное значение. Например, шрифт анонимного поля наследуется от DIV, но поля будут равны 0.
Свойства, установленные для элементов, вызывающих создание анонимных блоков, по-прежнему применяются к полям и содержимому этого элемента. Например, если в элементе P в вышеприведенном примере была установлена граница, граница будет нарисована вокруг C1 (открытый в конце линии) и C2 (открытый в начале линии).
Некоторые пользовательские агенты реализовали границы для встроенных строк, содержащих блоки, другими способами, например, путем помещения таких вложенных блоков в «анонимные линейные блоки» и, таким образом, рисуя встроенные границы вокруг таких блоков. Поскольку CSS1 и CSS2 не определяли это поведение, пользовательские агенты, использующие только CSS1 и только CSS2, могут реализовать эту альтернативную модель и по-прежнему заявлять о соответствии этой части CSS 2.1. Это не относится к UA, разработанным после выпуска этой спецификации.
Делай из того, что хочешь. Очевидно, что поведение указано в CSS, хотя неясно, охватывает ли оно все случаи или реализовано ли оно последовательно в современных браузерах.