На самом деле я не уверен, можно ли сказать, что блок уровня блока примыкает к линейному блоку (или наоборот). Однако, в вашем примере, на самом деле есть два строковых блока - один, который генерируется div.one
при форматировании его встроенного содержимого путем установления контекста встроенного форматирования, и другой, который генерируется элементом body
при форматировании span.two
(и его span.three
дочерний элемент) - и можно сказать, что линейный блок внутри div.one
примыкает к тому, который содержит span.two
и span.three
.
Для рисования встроенных блоков не имеет значения, какой контейнер блока генерирует каждый линейный блок, который примыкает к тем, которые содержат эти встроенные блоки. Даже не имеет значения, устанавливает ли какой-либо из контейнерных блоков контекст форматирования блока. Вот почему вы видите, что встроенный блок span.three
стекает в линейный блок внутри div.one
.
Блок уровня блока не может напрямую сосуществовать с линейным блоком, и по определению «уровень блока» он также не может быть заключен в блок строки (чтобы ответить на ваш заголовок). В вашем примере линейный блок, на котором визуализируются span
s, находится в анонимном блоке , который затем представляется как родственный элемент div
. Этот анонимный блок-блок устанавливает собственный контекст встроенного форматирования для span
s, так же как div
делает для своего текста.