Как упоминалось в вашем комментарии и в других ответах, тривиально выкладывать элементы .entities
в виде встроенных блоков или размещать их, чтобы выстроить их содержимое в строки, напоминающие правильную таблицу.(По иронии судьбы, вы не можете воспроизвести этот макет, используя свойства таблицы CSS2.1 .)
Однако, если вам нужно уложить каждый элемент содержимого в линию таким образом, чтобы каждыйrow не действует как строка таблицы, а не просто как строка line , как показано на вашей диаграмме, это невозможно с вашей заданной структурой из-за того, как встроенное форматирование работает в CSS.Перестройка вашего контента для размещения такого макета так же проста, как и организация контента по строке, а не по столбцу, что, я уверен, вы рассмотрели, поэтому я не буду вдаваться в подробности.
Из spec :
Элементы встроенного уровня - это те элементы исходного документа, которые не образуют новые блоки содержимого;содержимое распределяется по строкам (например, выделенные фрагменты текста в абзаце, встроенные изображения и т. д.).Следующие значения свойства display отображают элемент inline-level: «inline», «inline-table» и «inline-block».Элементы встроенного уровня генерируют блоки встроенного уровня , которые представляют собой блоки, которые участвуют в контексте встроенного форматирования.
контекст встроенного форматирования обычно может быть толькогенерируется блок-контейнером блока :
A блок-контейнера блока либо содержит только блоки уровня блока, либо устанавливает контекст внутреннего форматирования и, следовательно, содержит только встроенныйящики высокого уровня.
В вашей структуре каждый div
генерирует единственно возможные блочные ящики-контейнеры.Таким образом, первый .entities
содержит двух собственных детей, а также второго и третьего для своих собственных детей.Вы не можете передавать дочерние элементы в разные содержащие блоки, которые являются родственными, поэтому вы не можете распределить дочерние элементы разных элементов по одной строке, даже если вы принудительно принудительно установите для всех них значение display: inline
или если для элементов содержимого будет display: inline-block
.
Обратите внимание, что элемент верхнего уровня div
также создает контекст внутреннего форматирования, но он не может использоваться вашими внутренними элементами таким же образом.
Кроме того, для решения этой проблемычасть вашего заявления о вознаграждении:
У CSS есть довольно много устройств, которые изменяют поток и выравнивание блоков.
К сожалению, это невозможно даже с flexbox , так как гибкие контейнеры работают аналогично блокирующим контейнерам и поэтому подчиняются тем же ограничениям, описанным выше в отношении потомков на уровне строки.
Этот может быть выполнимым дляопределенная степень с CSS регионами , но я не знаком с этим модулем, и там слишком малоЕго поддержка в любом случае актуальна в настоящее время (даже по сравнению с flexbox).