【发布时间】:2018-09-06 19:26:20
【问题描述】:
我遇到了嵌套 CSS GRID 的问题 - 嵌套的网格项目未正确显示 - 已反复检查标记,但我没有看到错误。
第一个网格行应该跨越三列(确实如此),并且网格项设置为 display:grid 有 2 个子网格项,子项没有跨越正确的列。
谁能解释为什么这不起作用?
在这里提琴:https://jsfiddle.net/qL683ubz/1/
这是css:
.insights-grid-container {
display: grid;
max-width: 998px;
margin: 0px auto;
grid-template-columns: auto auto auto;
grid-template-rows: 300px 300px 300px 300px 300px;
grid-gap: 5px 5px;
background-color: #ccc;
}
.insights-grid-container div {
background-color: #fff;
}
.insights-grid-container > div > div:first-child {
background-position: center;
background-repeat: no-repeat;
background-size: cover;
}
/* row, column, row, column */
.insights-grid-container .article.hero {
grid-area: 1 / 1 / span 1 / span 3;
display: grid;
grid-template-columns: auto auto auto;
grid-template-rows: 300px;
grid-gap: 5px 5px;
background-color: #cc0000;
}
.insights-grid-container > .article.hero > div:first-child {
grid-area: 1 / 1 / span 1 / span 2;
}
.insights-grid-container > .article.hero > div:last-child {
grid-area: 1 / 3 / span 1 / span 1;
}
.insights-grid-container > .article.event {
grid-template-columns: auto;
grid-template-rows: 90px;
}
.insights-grid-container > .article.aside-left {}
.insights-grid-container > .article.aside-right {}
这里是网格:
<div class="insights-grid-container">
<div class="article hero">
<div style="background-image: url(https://via.placeholder.com/600x300);" />image</div>
<div>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
</div>
</div>
<div class="article aside-left">
<div style="background-image: url(https://via.placeholder.com/300x300);" />1 </div>
<div>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
</div>
</div>
<div class="article"><h3>2</h3>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.</div>
<div class="article"><h3>3</h3>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.</div>
<div class="article"><h3>4</h3>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.</div>
<div class="article"><h3>5</h3>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.</div>
<div class="article aside-right">
<div style="background-image: url(https://via.placeholder.com/300x300);" />1 </div>
<div>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
</div>
</div>
<div class="article"><h3>2</h3>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.</div>
<div class="article"><h3>3</h3>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.</div>
<div class="article"><h3>4</h3>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.</div>
<div class="article"><h3>5</h3>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.</div>
<div class="article event"><h3>event</h3>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.</div>
</div>
【问题讨论】:
-
打开/关闭 div 对图像不好
-
您可以尝试使用真实的
<img>标签而不是背景图片。背景图像不会拉伸 div。 div 与它的内容一样宽(自动) -
@enxaneta 这与网格无关。
-
Félix Gagnon-Grenier 感谢您的评论:他有
grid-template-columns: auto auto auto; -
@enxaneta 我解决了答案中的差异