gpt4 book ai didi

javascript - child 的高度限制在 parent 的剩余空间内

转载 作者:行者123 更新时间:2023-11-28 06:15:58 25 4
gpt4 key购买 nike

我应该如何使用 CSS3 设置滚动框类以将其高度调整到其父级的所有剩余空间。即使滚动框内容很长,滚动框也不应更改其父项的高度。在这种情况下,滚动框应该显示滚动条。可能吗?

div {
margin: 0;
border-radius: 12px;
padding: 6px;
background-color: white;
}
body {
margin: 0px;
width: auto;
height: 100vh;
display: grid;
grid: 20vw 1fr / 20vh 1fr;
grid-template-areas: "top-left main""bottom-left main";
grid-row-gap: 4px;
grid-column-gap: 4px;
}
.top-left {
grid-area: top-left;
background-color: lightblue;
}
.bottom-left {
grid-area: bottom-left;
background-color: lightgreen;
}
.main {
grid-area: main;
background-color: lightpink;
}
.scrollbox {
background-color: white;
}
<body>
<div class="top-left">
Top-Left
</div>
<div class="bottom-left">
Bottom-Left
<div class="scrollbox">
<svg viewBox="0 0 2000 2000">
<circle cx="1000" cy="1000" r="1000" />
</svg>
</div>
</div>
<div class="main">
Main
<div class="scrollbox">
<svg viewBox="0 0 2000 2000">
<circle cx="1000" cy="1000" r="1000" />
</svg>
</div>
</div>
</body>

最佳答案

如果“将其高度调整到其父级的所有剩余空间”是指主体的高度 100vh,则 scrollbox 类也不是真正的问题。您可能想要将 body 的所有直接子级限制为特定高度,该高度加起来小于 body 的高度。

即如果 body 有 3 个 child ,每个 child 的高度将是 100/3 单位,所以你只需要这样的东西:

body>*{
max-height: 33.33333333vh;
overflow-y: auto;
}

overflow 属性添加了你想要的垂直滚动条。为了确保只有 scrollbox 类具有特定的高度和那些滚动条,您可以用类似的方式引用它们:

body>*>.scrollbox {
max-height: 30vh;
overflow-y: auto;
}

但是,我想知道你为什么要给 body 那么高? vh 是一个 particular unit , body标签中的100vh等同于写100%:

With vw/vh, we can size elements to be relative to the size of the viewport. The vw/vh units are interesting in that 1 unit reflects 1/100th the width of the viewport. To make an element the full width of the viewport, for example, you'd set it to width:100vw.

不过这是您的代码段:

div {margin: 0;border-radius: 12px;padding: 6px;background-color: white;}
body {margin: 0px;width: auto;height: 100vh;display: grid;grid: 20vw 1fr / 20vh 1fr;grid-template-areas: "top-left main""bottom-left main";grid-row-gap: 4px;grid-column-gap: 4px;}
.top-left {grid-area: top-left;background-color: lightblue;}
.bottom-left {grid-area: bottom-left;background-color: lightgreen;}
.main {grid-area: main;background-color: lightpink;}
.scrollbox {
background-color: white;
}
body>*>.scrollbox {
max-height: 30vh;
overflow-y: auto;
}
<body>
<div class="top-left">
Top-Left
</div>
<div class="bottom-left">
Bottom-Left
<div class="scrollbox">
<svg viewBox="0 0 2000 2000">
<circle cx="1000" cy="1000" r="1000" />
</svg>
</div>
</div>
<div class="main">
Main
<div class="scrollbox">
<svg viewBox="0 0 2000 2000">
<circle cx="1000" cy="1000" r="1000" />
</svg>
</div>
</div>
</body>

关于javascript - child 的高度限制在 parent 的剩余空间内,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35889175/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com