我正在使用这样的新css网格:
#site {
display: grid;
grid-template-columns: 10% 1fr 1fr 1fr 10%;
grid-template-rows: 100px auto;
grid-template-areas:
". header header header ."
". content content sidebar ."
}
所以我有两行和五列,但只有3列内容。我正在使用模板区域中的点来定义空白区域。这导致具有3列布局,左侧和右侧具有空白区域。如果我将元素放置在具有背景颜色的网格区域中,则左右白色空间保持白色(逻辑上)。我想要的是全宽背景(颜色),但我不确定如何实现这一点。我想到的一个选择是在背景中有一个第二个网格,它具有相同的列和行,但不是白色空格,然后我可以用颜色填充它,但我认为这不是最佳做法。
我在这里看到3个选项
background
颜色设置一个或多个背景。此外,您可以使用渐变来设置渐变和纯色。grid-row
和grid-column
。这个项目应该有负z-index
与其他网格项重叠(z-index
甚至工作静态定位网格项目,flex项目也是如此)。我发现最好的是将网格放在容器内一定宽度以使内容居中。并且你需要扩展背景所需的项目给出一个巨大的左/右填充,并且相同的边距为负。
一定要给身体一个溢出-x:隐藏;
<div class="container">
<div id="site">
<div class="header"></div>
<div class="content"></div>
<div class="footer"></div>
</div>
</div>
而CSS:
.container{
width:1000px;
margin: 0 auto; //
}
#site {
display: grid;
grid-template-columns: 10% 1fr 1fr 1fr 10%;
grid-template-rows: 100px auto;
grid-template-areas:
". header header header ."
". content content sidebar ."
}
.header{
background: red;
padding: 0 3000px;
margin: 0 -3000px;
}
body{
overflow-x: hidden;
}