【发布时间】:2020-05-27 15:19:51
【问题描述】:
我有以下简单的网格设置。它在同时存在content 和sidebar div 的情况下按预期工作,但是我希望content 区域在sidebar 区域不存在时扩展以填充sidebar 留下的区域在页面上。在下面示例的第二个网格中,sidebar 不存在,但content 区域不会扩展以填充剩余空间。我希望它这样做。
/* Based on example from https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Grid_Layout/Grid_Template_Areas */
.content {
grid-area: main;
}
.sidebar {
grid-area: side;
}
.wrapper {
display: grid;
grid-template-columns: 1fr 1fr;
grid-template-areas:
"main side"
}
* {box-sizing: border-box;}
.wrapper {
border: 2px solid #f76707;
border-radius: 5px;
background-color: #fff4e6;
max-width: 940px;
margin: 0 auto 30px auto;
}
.wrapper > div {
border: 2px solid #ffa94d;
border-radius: 5px;
background-color: #ffd8a8;
padding: 1em;
color: #d9480f;
}
<!-- First grid - works fine -->
<div class="wrapper">
<div class="content">Content</div>
<div class="sidebar">Sidebar</div>
</div>
<!-- Second grid - content should expand to fill the area that would be used by sidebar -->
<div class="wrapper">
<div class="content">Content</div>
</div>
也许这是我不应该为此使用 CSS 网格而是浮动的情况?
【问题讨论】:
-
单个父容器将用于网格,然后您可以在网格内任意设置子容器。
-
查看示例让网格单元为空然后跨越多个单元以了解您做错了什么;)