我试着用css来实现砖石建筑风格,列布局如下图所示。
我想知道是否有可能使.green
一个采取两个列,而不是一个?
先谢谢你!
.parent{
column-gap: 1rem;
column-count: 2;
}
.element{
display:inline-block;
background:red;
width:100%;
height:100px;
}
.green{
background:green;
}
<div class="parent">
<div class="element green">
</div>
<div class="element">
</div>
<div class="element">
</div>
<div class="element">
</div>
</div>
3条答案
按热度按时间nxowjjhe1#
对于CSS网格,您可以使用
grid-column: span 2
:在此了解更多信息:https://developer.mozilla.org/en-US/docs/Web/CSS/grid-column
石方 * 砌体 * 风格:在撰写本文时,CSS网格布局规范的级别3包括
grid-template-columns
和grid-template-rows
布局的masonry
值,尽管浏览器支持几乎不存在:https://caniuse.com/?search=masonry在这里了解:https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Grid_Layout/Masonry_Layout
所以我在网格上使用了
grid-auto-flow: dense;
,这使得网格项G出现在网格项F之前。这不是真正的 * 砖石 * 风格(根据可用的垂直空间将元素放置在最佳位置),但它通过使网格 * 密集 * 填充所有可用的水平空间来接近。"密集"填充算法尝试填充格网中较早的孔洞
在这里了解:https://developer.mozilla.org/en-US/docs/Web/CSS/grid-auto-flow
哦,如果你是CSS网格的新手,我推荐你看Wes Bos的演讲"CSS网格45分钟!":https://www.youtube.com/watch?v=DCZdCKjnBCs
5jvtdoz22#
CSS网格布局提供了一个简单、方便、高效的解决方案。
更多信息:
368yc8dk3#
我会说,不,你不能让一个. green元素占据两列,因为你是特别告诉浏览器使用两列。如果你需要它跨越两列,那么我建议使用一个单独的元素。也许一个更合适的解决方案是使用CSS网格布局。下面的代码片段包含了这两种解决方案的一个例子: