【发布时间】:2018-08-15 21:15:05
【问题描述】:
我有这个 HTML
<div class='wrapper'>
<div class='item-1'>One</div>
<div class='item-2'>Two</div>
<div class='item-3'>Three</div>
<div class='item-4'>Four</div>
</div>
在 CSS 中,我是否可以创建一个两列网格,其中 item-1 和 item-2 位于第一列,而 item-3 和 item-4 位于第二列?
div 的高度是可变的,所以这不是严格的 2x2 网格。
基本上,我希望它看起来像下面的示例,但我没有包装我的物品的奢侈。
谢谢!
.wrapper {
display:grid;
grid-template-columns: 1fr 1fr;
}
<div class='wrapper'>
<div class='wrapper-1'>
<div class='item-1' style='height:100px;background-color:red;'>One</div>
<div class='item-2' style='height:80px;background-color:blue;'>Two</div>
</div>
<div class='wrapper-2'>
<div class='item-3' style='height:40px;background-color:orange;'>Three</div>
<div class='item-4' style='height:40px;background-color:green;'>Four</div>
</div>
</div>
【问题讨论】:
-
其他SO question 可能会有所帮助,但我的直觉是 flex 布局比网格布局更容易实现这一点……你有这个选项吗? (我都不擅长尝试实际答案,因此发表评论)
-
这不可能单独使用 CSS 网格,因为它在二维中工作,除非您创建了微型行并且知道您的内容将跨越 N 行。
-
感谢大家的快速回复。我不相信砌体网格重复的答案是正确的。在那种情况下,声明一个元素可以跨越多少行,但这不是我的情况。我的同事指给我看这个页面。 css-tricks.com/…。我让它使用概述的 flexbox 方法工作......但它确实涉及为容器指定最大高度和为元素指定一些宽度。使用 flex-wrap 它将包裹元素并且看起来正确。感觉有点脏,但在我的情况下确实有效,因为我可以设置最大宽度。
-
@dippas 您能否反映您引用的答案是否真的回答了这个问题?我不相信它有。谢谢。