【发布时间】:2018-05-29 15:19:38
【问题描述】:
.grid-container {
display: grid;
grid-template-columns: auto auto auto;
background-color: #2196F3;
padding: 10px;
}
.grid-item {
background-color: rgba(255, 255, 255, 0.8);
border: 1px solid rgba(0, 0, 0, 0.8);
padding: 20px;
font-size: 30px;
text-align: center;
}
<div class="grid-container">
<div class="grid-item">1</div>
<div class="grid-item">2</div>
<div class="grid-item">3</div>
<div class="grid-item">4</div>
<div class="grid-item">5</div>
<div class="grid-item">6</div>
<div class="grid-item">7</div>
</div>
这个解决方案的问题是,如果我有空的网格区域,就不会有线条。但我需要所有网格区域周围的线条。如果我将项目添加到空网格区域,并且只设置一个边框就可以了,但是如果空元素(和非空元素)的数量未知怎么办?如果元素比一个单元格长怎么办?我希望每个单元格都有边框。
.grid-container {
display: grid;
grid-template-columns: auto auto auto;
background-color: #2196F3;
padding: 10px;
}
.grid-item {
background-color: rgba(255, 255, 255, 0.8);
border: 1px solid rgba(0, 0, 0, 0.8);
padding: 20px;
font-size: 30px;
text-align: center;
}
.longer {
grid-column: auto / span 2;
}
<div class="grid-container">
<div class="grid-item">1</div>
<div class="grid-item">2</div>
<div class="grid-item">3</div>
<div class="grid-item">4</div>
<div class="grid-item">5</div>
<div class="grid-item">6</div>
<div class="grid-item longer">7</div>
</div>
好的,我可以将较长的项目制作成网格,并将其模板列设置为它的跨度值,然后填充单元格,但这不是一个优雅的解决方案。
所以请告诉我最好的解决方案。
【问题讨论】:
-
你不能。网格轨道不是元素,因此无法设置样式。也许你需要重新考虑你的布局方法。
-
您可能会发现此信息很有用:CSS Grid Inspector: Examine grid layouts