Ответ 1
Простой ответ: вы не можете, по крайней мере, не со списками. Смежные элементы с их дисплеем, установленными на table-cell
, рассматриваются как принадлежащие к одной и той же строке (даже если элемент строки не указан, для вас будет создан анонимный). Поскольку спискам не разрешено содержать какие-либо другие теги между ul и li, это просто невозможно в списках. Вам придется использовать либо разную разметку, либо различные стили.
Вот ваши варианты, если вы не хотите изменять разметку.
Встроенный блок в элементах списка: http://jsfiddle.net/XNq74/1/
li {
display: inline-block; /* could use floats here instead */
width: 40%;
}
Столбцы CSS будут разумным выбором: http://jsfiddle.net/XNq74/
ul {
columns: 2;
}
http://caniuse.com/#feat=multicolumn
Flexbox также будет работать и может использоваться в комбинации с встроенным блоком: http://jsfiddle.net/XNq74/2/
ul {
display: flex;
flex-flow: row wrap;
}
li {
flex: 1 1 40%;
}