Противоречие в определении встроенных блоков и встроенных блоков (W3C) - PullRequest
0 голосов
/ 10 мая 2018

W3C источник для цитат ниже.

Следующие значения свойства display отображают элемент inline-level : 'inline', 'inline-table' и 'inline-block'

Таким образом, элемент с display: inline-block является элементом встроенного уровня .

Элементы встроенного уровня генерируют блоки встроенного уровня , представляющие собой блоки которые участвуют в контексте inline .

Таким образом, все поля встроенного уровня участвуют в контексте встроенного форматирования .

Встроенное поле - это то, которое является одновременно встроенным, и чье содержимое участвовать в содержащем его встроенном контексте форматирования

Если все встроенные блоки уровня участвуют в встроенном контексте форматирования , а встроенное поле - это то, которое одновременно является встроенным уровнем поле и участвует в контексте строкового форматирования , должно быть верно, что все поля встроенного уровня являются встроенными полями и наоборот.

И, наконец, вот утверждение, которое затем нарушает логику:

Ящики встроенного уровня, которые не являются встроенными (например, заменены) элементы встроенного уровня, элементы встроенного блока и встроенная таблица элементы) называются атомными встроенными ящиками ...

Другими словами:

Во-первых, нам с помощью логического подтекста сообщают, что все встроенных блоков являются встроенными блоками . Затем нам говорят обратное: что несколько встроенных блоков (подобно тем, которые генерируются элементами с display: inline-block), на самом деле не встроенных блоков .

Я что-то упускаю или цитаты противоречат друг другу?


EDIT

1 Ответ

0 голосов
/ 10 мая 2018

В стандарте нет противоречий, но мы должны внимательно прочитать, чтобы выявить различия.

  1. Встроенные блоки уровня - это блоки, которые участвуют в контексте встроенного форматирования.
  2. Встроенное поле - это поле встроенного уровня, чье содержимое участвует в содержащем его контексте встроенного форматирования

Элемент span внутри абзаца является встроенным блоком, поскольку текст внутри элемента span участвует в окружающем контенте абзаца.

Элемент с display: inline-block; будет перетекать с окружающим контентом, как если бы он был одним встроенным блоком, но поскольку этот элемент фактически сгенерирует блок блока элементов , содержимое элемента не участвует в его содержании. встроенный контекст форматирования.

...