Ответ 1
Модель таблицы CSS основана на модели таблицы HTML http://www.w3.org/TR/CSS21/tables.html
Таблица разделена на ROWS, и каждая строка содержит одну или несколько ячеек. Ячейки являются дочерними элементами ROWS, они НИКОГДА не являются дочерними столбцами.
"display: table-column" НЕ предоставляет механизм для создания столбчатых макетов (например, газетные страницы с несколькими столбцами, где контент может перетекать из одного столбца в следующий).
Скорее, "table-column" ТОЛЬКО устанавливает атрибуты, которые применяются к соответствующим ячейкам в строках таблицы. Например. "Цвет фона первой ячейки в каждой строке зеленый" можно описать.
Сама таблица всегда структурирована так же, как и в HTML.
В HTML (обратите внимание, что "td" находятся внутри "tr" s, а не внутри "col" ):
<table ..>
<col .. />
<col .. />
<tr ..>
<td ..></td>
<td ..></td>
</tr>
<tr ..>
<td ..></td>
<td ..></td>
</tr>
</table>
Соответствующий HTML с использованием свойств таблицы CSS (обратите внимание, что в "div" столбца не содержится никакого содержимого - стандарт не разрешает содержимое непосредственно в столбцах):
.mytable {
display: table;
}
.myrow {
display: table-row;
}
.mycell {
display: table-cell;
}
.column1 {
display: table-column;
background-color: green;
}
.column2 {
display: table-column;
}
<div class="mytable">
<div class="column1"></div>
<div class="column2"></div>
<div class="myrow">
<div class="mycell">contents of first cell in row 1</div>
<div class="mycell">contents of second cell in row 1</div>
</div>
<div class="myrow">
<div class="mycell">contents of first cell in row 2</div>
<div class="mycell">contents of second cell in row 2</div>
</div>
</div>