【发布时间】:2021-03-19 01:15:06
【问题描述】:
我有 CSS 网格来生成两列布局。但问题是它不是每列中的顶部对齐内容。
例如,在第二列中,最后一个元素应该与另一个第二列元素顶部对齐但向上对齐。
body>div {
display: grid;
grid-template-columns: 50% 50%;
grid-template-rows: auto auto;
grid-auto-flow: column;
/* https://codepen.io/maddesigns/pen/oZGWRN */
/* https://developer.mozilla.org/en-US/docs/Web/CSS/grid-auto-flow */
}
body>div>div:nth-of-type(1) {
height: 300px;
}
body>div>div:nth-of-type(2) {
height: 100px;
}
body>div>div:nth-of-type(3) {
height: 200px;
}
<div style="">
<div style="background:red">
1
</div>
<div style="background:green;">
2
</div>
<div style="background:yellow">
3
</div>
<div style="background:pink">
4
</div>
</div>
我无法在此布局中使用 flex,因为我想在不定义容器高度的情况下实现此布局。 column-count:2 会在不定义容器高度的情况下工作,但我不能使用 div 重新排序。
所以我使用 CSS 网格,因为 div 重新排序仍然可用(例如/即order:–1; 效果很好)并且它会自动划分要放入两列中的每一列。
【问题讨论】:
-
参见此处:css-tricks.com/… - 对于没有 CSS Grid 的替代解决方案,请参见此处:css-tricks.com/guide-responsive-friendly-css-columns
标签: css css-grid newspaper3k