Хорошая попытка использования flexbox для решения этой проблемы.Единственная дилемма flexbox в том, что использовать его с table
может быть сложно, так как они оба представляют разные способы отображения вещей.См. Также этот вопрос о переполнении стека .
Использование table
решение Обходной путь, чтобы просто использовать table
для достижения того, чего вы хотите, специально установить все элементы на display: flex;
и использовать это.Вот пример CodePen, чтобы сделать это .
$light-background: #eee;
.news-tb {
background-color: $light-background;
display: flex;
flex-flow: row wrap;
width: 100%;
tbody,
tr,
td {
display: flex;
}
tbody {
flex-direction: row;
flex-wrap: wrap;
}
.news-row {
flex: 1 1 25%;
}
}
Использование Div Solution Есть решение, которое использует div вместо table
.Вот пример CodePen для этого.Это значительно короче, чем прежнее решение, и все же показывает действительный HTML и CSS.
.news-tb {
background-color: $light-background;
display: flex;
flex-flow: row wrap;
width: 100%;
.news-row {
flex: 1 1 25%;
}
}
требуется только для того, чтобы «строки» занимали 25 процентов ширины.