我正在尝试创建一个包含4个项目的网格布局。我希望第一个项目是全宽的,而第二个、第三个和第四个项目应该是等宽的。应该只有两行。哪些css属性可以帮助我实现这一点?
<div class="grid-container">
<div class="item-1">Item 1</div>
<div class="item">Item 2</div>
<div class="item">Item 3</div>
<div class="item">Item 4</div>
</div>
<style>
.grid-container {
display: grid;
grid-template-columns: 1fr repeat(3, auto);
grid-template-rows: auto;
grid-gap: 20px;
}
.item {
background-color: #ddd;
padding: 20px;
text-align: center;
}
.item-1 {
grid-column: 1 / span 3;
}
</style>
3条答案
按热度按时间bttbmeg01#
您需要一个3列宽的网格,每一列占据它所能占据的空间(1fr)。
然后你只需要设置第一个项目跨越所有3列,你的CSS已经这样做了。
这个代码片段为第一个项目提供了一个背景颜色,这样我们就可以检查它是否正确跨越。
代码段设置2行,每行的高度由其内容决定。
rkttyhzu2#
这取决于您想如何布局它们,但是这里的documentation展示了各种布局的好例子。
应该能达到你的目的。
基本上,
grid-row: 2/3
意味着.item
在第二行,但如果你想在第二行中有3个项目,这意味着实际上有4列(这就是网格系统的工作原理)。.item
的等宽是自动实现的。所以现在.item-1
需要加宽到grid-column: 1/4
,这意味着它从列1 - 4跨越。我把宽度100%好的措施和背景颜色为我自己的调试目的。6ss1mwsb3#
首先,如果你想在任何类上指定一个样式,而这个类在你的case“item”中包含一个特定的名称
因此,您可以执行以下操作:
[class *=“item”]表示任何类都有item这个词。
其次,要修复网格代码,您必须执行以下操作:
基本上使用重复3个地区,每个对与自动宽度或您可以使用1fr太。