我使用CSS Grid创建了下面的网格,我想知道是否可能只在网格中的特定元素之间存在间隙,而不是对所有网格元素应用通用间隙。这就是我现在所拥有的:
body {
margin: 40px;
}
.wrapper {
display: grid;
grid-gap: 10px;
grid-template-columns: [col] 100px [col] 100px [col] 100px;
grid-template-rows: [row] auto [row] auto [row] ;
background-color: #fff;
color: #444;
}
.box {
background-color:#444;
color:#fff;
padding:20px;
font-size:150%;
}
.a {
grid-column: col / span 2;
grid-row: row 1 / 3;
}
.b {
grid-column: col 3 / span 1;
grid-row: row ;
}
.c {
grid-column: col 3 / span 1;
grid-row: row 2 ;
}
.d {
grid-column: col / span 1;
grid-row: row 3;
}
.e {
grid-column: col 2 / span 1;
grid-row: row 3;
}
.f {
grid-column: col 3 / span 1;
grid-row: row 3;
}
.g {
grid-column: col / span 1;
grid-row: row 4;
}
.h {
grid-column: col 2 / span 1;
grid-row: row 4;
}
.i {
grid-column: col 3 / span 1;
grid-row: row 4;
}
<div class="wrapper">
<div class="box a">A</div>
<div class="box b">B</div>
<div class="box c">C</div>
<div class="box d">D</div>
<div class="box e">E</div>
<div class="box f">F</div>
<div class="box g">G</div>
<div class="box h">H</div>
<div class="box i">I</div>
</div>
我想删除右侧前两行之间以及下方行上每个单元格之间的间隙。我想保持细胞像现在一样分解,因为桌面上的布局会有所不同。这是我想要的图形表示:
答案 0 :(得分:4)
这是不可能的。
您可以使用grid-item:nth-child(n)
引用特定网格项,并为其设置负边距。
答案 1 :(得分:0)
我有一个努力来获得你想要的结果。我只是在一个单独的网格部分中移动了所有三行。我不确定它是否有帮助,但这里是:
body {
margin: 40px;
}
.wrapper1 {
display: grid;
grid-gap: 10px;
grid-template-columns: [col] 100px [col] 100px [col] 100px;
grid-template-rows: [row] auto [row] auto [row] ;
background-color: #fff;
color: #444;
margin-bottom: 10px;
}
.wrapper2 {
display: grid;
grid-template-columns: [col] 100px [col] 100px [col] 100px;
grid-template-rows: [row] auto [row] auto [row] ;
background-color: #fff;
color: #444;
margin-bottom: 10px;
}
.wrapper3 {
display: grid;
grid-template-columns: [col] 100px [col] 100px [col] 100px;
grid-template-rows: [row] auto [row] auto [row] ;
background-color: #fff;
color: #444;
margin-bottom: 10px;
}
.box {
background-color:#444;
color:#fff;
padding:20px;
font-size:150%;
}
.a {
grid-column: col 1 / span 2;
grid-row: row 1 / 3;
}
.b {
grid-column: col 3 / span 1;
grid-row: row ;
}
.c {
grid-column: col 3 / span 1;
grid-row: row 2 ;
}
.d {
grid-column: col 1 / span 1;
grid-row: row 3;
width: 80%;
}
.e {
grid-column: col 2 / span 1;
grid-row: row 3;
width: 80%;
}
.f {
grid-column: col 3 / span 1;
grid-row: row 3;
width: 80%;
}
.g {
grid-column: col 1 / span 1;
grid-row: row 4;
width: 80%;
}
.h {
grid-column: col 2 / span 1;
grid-row: row 4;
width: 80%;
}
.i {
grid-column: col 3 / span 1;
grid-row: row 4;
width: 80%;
}
<div class="wrapper1">
<div class="box a">A</div>
<div class="box b">B</div>
<div class="box c">C</div>
</div>
<div class="wrapper2">
<div class="box d">D</div>
<div class="box e">E</div>
<div class="box f">F</div>
</div>
<div class="wrapper3">
<div class="box g">G</div>
<div class="box h">H</div>
<div class="box i">I</div>
</div>