В CSS спецификации в сек 9.2.1 сказал:Inline- и блочные коробки внутри коробки блока-контейнера
для настольных коробок, которые описаны в следующей главе исключением, и заменены элементы, A Блок-блок также является блочным контейнером. A Блок контейнера блоков содержит только блоки уровня блока или устанавливает встроенный контекст форматирования и, следовательно, содержит только встроенных ящиков. Рассмотрим разметку:
<div id="d">
<div>Anonymous text</div>
<span>Some text</span>
<span>Another some text</span>
<div>Another anonymous text</div>
</div>
и стили:
div#d{
width: 300px;
height: 300px;
background: aqua;
}
В моем случае div#d
содержит блочные и инлайн-уровня коробки. Но в сек. 9.2.1.1 говорит, что
, если коробка блок контейнер (как, например, генерироваться для приведенного выше DIV) имеет структурный блок внутри него (например, как выше Р), то заставить это иметь только блок -уровневые ящики внутри него.
Q: Почему мы можем поместить внутрь элемента уровня блока (например div
) как встроенные и блочные элементы, и они будут отображаться в виде встроенных и блочного элемента, но в спецификации сказал, что блок контейнер коробка содержит либо только блок- или устанавливает встроенный контекст форматирования и, следовательно, содержит только строки на уровне строки.
Я смущен. Можете ли вы развеять мои сомнения?
В чем ваш вопрос? –
@SalmanA Я обновляю свой вопрос. –
Из того, что я понимаю: спецификации говорят, что если в ящике есть сочетание встроенных и блокирующих элементов, тогда встроенные элементы обернуты в анонимный блок, чтобы удовлетворить предложение «только блок или только встроенное». –