Обе спецификации, конечно, верны, но вы забыли ключевое слово display во втором разделе. Каждый элемент имеет отображаемое значение, а для гибких элементов это значение равно block
, что означает, что, например, если вы укажете inline-block
, оно будет вычислено до block
. Если вы укажете inline-grid
, он будет вычислен до grid
и т. Д.
, если указанное отображение дочернего элемента в потоке элемента, генерирующего гибкий контейнер, является значением встроенного уровня , оно вычисляется в его эквивалентном уровне блока
Таким образом, элементы flex - это блоки уровня flex со значением display: block;
, но не блоки уровня.
Похожие: Использование свойства отображения элементов flex box
Чтобы было проще, представьте, что у вас есть два мира: внешний мир и внутренний мир. Если мы посмотрим на элемент flex из внешнего мира, это блок уровня Flex, участвующий в контексте форматирования Flex своего контейнера. Из внутреннего мира это блочный элемент, который означает, что элемент внутри гибкого элемента будет видеть этот гибкий элемент как элемент блока.
Если вы установите inline-[flex/table/grid/block]
для гибкого элемента, он будет выглядеть как [flex/table/grid/block]
контейнер изнутри. inline
ушел, потому что он заблокирован .