我创建了一个Codepen来说明我现在面临的问题 https://codepen.io/marcdaframe/pen/qeBWNd
<div>
123 abc
<div class="container">
<div class="wrapper">
<div>One</div>
<div>Two</div>
<div>Three</div>
<div>Four</div>
<div>Five</div>
<div>Six</div>
<div>Seven</div>
<div>Eight</div>
</div></div>
Hello World
</div>
* {box-sizing: border-box;}
.container{
height: 25%;
overflow-y: scroll;
}
.wrapper {
border: 2px solid #f76707;
border-radius: 5px;
background-color: #fff4e6;
}
.wrapper > div {
border: 2px solid #ffa94d;
border-radius: 5px;
background-color: #ffd8a8;
padding: 1em;
color: #d9480f;
}
.wrapper {
display: grid;
grid-template-columns: repeat(3, 1fr);
grid-gap: 10px;
grid-auto-rows: 100px 200px;
}
我有一个容器,该容器的高度以百分比定义(它确实可以设置绝对值,但是我无法使用绝对值或vh),该网格的div高度为25%,并且任何溢出都应滚动,但div中的网格不尊重这一点。
答案 0 :(得分:1)
使用高度:25%时,您需要定义高度的25%。 因此,要使25%的工作有效,您需要为所有父容器赋予100%的高度,直到body和html。
有效地使25%的人工作所需的其他样式是:
html,body {
height:100%;
}
body > div {
height:100%;
}
注意:仅“容器” div的父div需要上述div样式。 希望它能帮助您理解问题。
答案 1 :(得分:0)
您可以将整体高度设置为100%,然后将子DIV设置为整体高度的百分比。请注意,笔中的第一个DIV也必须具有设定的高度。 这是经过编辑的笔: https://codepen.io/witnauer/pen/LwYPMx
* {box-sizing: border-box;height: 100%}
.outermost {
height: 25%;
}
.container{
height:25%;
overflow-y: scroll;
}
.wrapper {
border: 2px solid #f76707;
border-radius: 5px;
background-color: #fff4e6;
}
.wrapper > div {
border: 2px solid #ffa94d;
border-radius: 5px;
background-color: #ffd8a8;
padding: 1em;
color: #d9480f;
}
.wrapper {
display: grid;
grid-template-columns: repeat(3, 1fr);
grid-gap: 10px;
grid-auto-rows: 100px 200px;
}
<div class="outermost">
123 abc
<div class="container">
<div class="wrapper">
<div>One</div>
<div>Two</div>
<div>Three</div>
<div>Four</div>
<div>Five</div>
<div>Six</div>
<div>Seven</div>
<div>Eight</div>
</div></div>
Hello World
</div>