В соответствии с CSS Specification анонимные блок-блоки создаются, когда поле блока контейнера имеет как встроенное, так и блочное содержимое.CSS: Когда пустые анонимные блоки блокированы?
В примере спецификация использует это
<DIV>
Some text
<P>More text</P>
</DIV>
Хром делает это как: Some text More text
Однако, учитывая:
<DIV>
[5 spaces followed by newline]
<P>Some text</P>
</DIV>
Хром делает это как: Some text
Другими словами, строка, содержащая пробелы, исключается.
Я смущен о порядке создания анонимных блоков блоков и порядке, в котором применяется CSS white-space specification.
а) Если предположить, что структурный блок анонимного создан первым, мы имеем
<DIV>
<anonymous_block>[5 spaces followed by newline]</anonymous_block>
<P>Some text</P>
</DIV>
б) Затем, в процессе компоновки анонимного блока, мы находим, что модель белого пространства первый уменьшает цельную до одного места. Создается одна строка, содержащая это пространство.
c) Это правило заставляет исключить пространство: «Если пробел (U + 0020) в конце строки имеет« белое пространство », установленное на« нормальный »,« nowrap »или« pre » -line ', он также удаляется. "
d) В этой точке мы имеем линию нулевой ширины, но ее высота (если я правильно понимаю модель css) - это шрифт.
Поэтому я ожидаю, что перед текстом появится пустая строка с высотой шрифта.
Поскольку это не так, какой из приведенных выше шагов неверен? Пожалуйста, укажите, как спецификация CSS приводит к наблюдаемому поведению.
Я не думаю, что у него что-то есть для использования спецификаций CSS. Это способ анализа HTML: любое пространство или новая строка два блока будут проигнорированы, если только оба из них не являются встроенными блоками. – Borgtex