【发布时间】:2020-11-18 22:08:17
【问题描述】:
我一直致力于构建一个包含一些“面板”和“行”的网格布局区域。每个面板由标题和主要元素组成,其中一些主要元素内部有一些项目。
这是我的演示。 https://codepen.io/bunatree/pen/Vwjqmod
#canvas {
padding: 10px;
display: grid;
gap: 10px;
grid-template:
"bar1 bar1 "
"panel1 panel2"
"bar2 bar2 "
"panel3 panel4"
/1fr 1fr
}
#sidebar {
grid-area: side;
background-color: #c99;
}
#panel1 {
grid-area: panel1;
}
#panel2 {
grid-area: panel2;
}
#panel3 {
grid-area: panel3;
}
#panel4 {
grid-area: panel4;
}
#bar1 {
grid-area: bar1;
}
#bar2 {
grid-area: bar2;
}
.panel {
padding: 10px;
background-color: #ccc;
}
.bar {
background-color: rgba(0,128,255,0.5);
padding: 20px;
}
header {
background-color: #9c9;
padding: 10px;
}
main {
min-height: 30px;
padding: 10px;
background-color: #c9c;
/* I set this 100% height here so that
the bottom of the main area reaches
the bottom of the panel div. */
height: 100%;
}
.item {
background-color: #cc9;
padding: 10px;
margin: 10px 0;
}
<div id="canvas">
<div class="bar" id="bar1">Bar 1</div>
<div class="panel" id="panel1">
<header>Panel 1</header>
<main>
<div class="item">Item 1</div>
<div class="item">Item 2</div>
</main>
</div>
<div class="panel" id="panel2">
<header>Panel 2</header>
<main>
<div class="item">Item 1</div>
</main>
</div>
<div class="bar" id="bar2">Bar 2</div>
<div class="panel" id="panel3">
<header>Panel 3</header>
<main>
</main>
</div>
<div class="panel" id="panel4">
<header>Panel 4</header>
<main>
<div class="item">Item 1</div>
</main>
</div>
</div>
但是,它使主要区域向下突出。
Some main element overflows in a downward direction.
没有100%的高度设置,溢出问题解决了,但主元素的高度适合内部项目的总高度。
所以,我的问题是如何扩展主元素的高度,而不考虑内部项目的数量。
如果有人帮助我,我会很高兴。谢谢。
【问题讨论】:
-
@Paulie_D 感谢您的建议。我是这里的新手,我不知道sn-ps。对不起,我没有 sn-ps 的解释不当。我只是将我的 HTML 和 CSS 代码粘贴到一个 sn-p 中,并将其放入我上面的问题中。我希望它有所帮助。
标签: css grid-layout