使用CSS网格时,是否可以让孩子超越父母的网格放置?
我有一个简单的CSS网格,有5列和两个行。第一行包含5个元素,但我希望第二行包含所有5列的第五元素的孩子,这可能吗?
我希望红色元素(元素5的子女)是所有其他元素以下行的宽度的100%。
.container {
display: grid;
grid-template-columns: [line1] min-content [line2] min-content [line3] min-content [line4] max-content [line5] max-content [end];
grid-template-rows: [row1-start] 10% [row1-end row2-start] auto [row2-end];
column-gap: 1em;
row-gap: 2em;
}
.element1 {
max-height: 2em;
grid-column-start: 1;
grid-column-end: 1;
grid-row-start: 1;
grid-row-end: 1;
background-color: pink;
}
.element2 {
max-height: 2em;
grid-column-start: 2;
grid-column-end: 2;
grid-row-start: 1;
grid-row-end: 1;
background-color: blue;
}
.element3 {
max-height: 2em;
grid-column-start: 3;
grid-column-end: 3;
grid-row-start: 1;
grid-row-end: 1;
background-color: orange;
}
.element4 {
max-height: 2em;
grid-column-start: 4;
grid-column-end: 4;
grid-row-start: 1;
grid-row-end: 1;
background: yellow;
}
.element5 {
grid-column-start: 5;
grid-column-end: 5;
grid-row-start: 1;
grid-row-end: 1;
justify-self: end;
background-color: purple;
}
.element-sub5 {
grid-column: 1 / 5;
grid-row: 2;
border: 1px solid red;
background-color: red;
padding: 0 1em;
margin-top: 2.5em;
width: 100%;
height: 10em;
float: left;
}
<div class="container">
<div class="element1">
element1
</div>
<div class="element2">
element2
</div>
<div class="element3">
element3
</div>
<div class="element4">
element4
</div>
<div class="element5">
element5
<span class="element-sub5">
REALLY BIG BOX OF TEXT
</span>
</div>
</div>
I have a simple CSS grid with 5 columns and two rows. The first row contains 5 elements but I want the second row to contain the 5th element's child for all 5 columns, is this possible?
I want the red element (the child of element 5) to be 100% the width in the row below all the other elements.
.container {
display: grid;
grid-template-columns: [line1] min-content [line2] min-content [line3] min-content [line4] max-content [line5] max-content [end];
grid-template-rows: [row1-start] 10% [row1-end row2-start] auto [row2-end];
column-gap: 1em;
row-gap: 2em;
}
.element1 {
max-height: 2em;
grid-column-start: 1;
grid-column-end: 1;
grid-row-start: 1;
grid-row-end: 1;
background-color: pink;
}
.element2 {
max-height: 2em;
grid-column-start: 2;
grid-column-end: 2;
grid-row-start: 1;
grid-row-end: 1;
background-color: blue;
}
.element3 {
max-height: 2em;
grid-column-start: 3;
grid-column-end: 3;
grid-row-start: 1;
grid-row-end: 1;
background-color: orange;
}
.element4 {
max-height: 2em;
grid-column-start: 4;
grid-column-end: 4;
grid-row-start: 1;
grid-row-end: 1;
background: yellow;
}
.element5 {
grid-column-start: 5;
grid-column-end: 5;
grid-row-start: 1;
grid-row-end: 1;
justify-self: end;
background-color: purple;
}
.element-sub5 {
grid-column: 1 / 5;
grid-row: 2;
border: 1px solid red;
background-color: red;
padding: 0 1em;
margin-top: 2.5em;
width: 100%;
height: 10em;
float: left;
}
<div class="container">
<div class="element1">
element1
</div>
<div class="element2">
element2
</div>
<div class="element3">
element3
</div>
<div class="element4">
element4
</div>
<div class="element5">
element5
<span class="element-sub5">
REALLY BIG BOX OF TEXT
</span>
</div>
</div>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
可以设置这样的网格,但前提是您的第五项元素不在其中……
CSS
HTML
It’s possible to set up a grid like this but only if your 5th items element isn’t inside it…
CSS
HTML