如何在给定的总高度上堆叠多个DIV,并在一个DIV上垂直滚动(不带JS)

问题描述 投票:0回答:2

我有一个分为三部分的页面:1个标题部分必须始终可见并且在视口的顶部,1个内容部分必须是可滚动的,1个尾随部分必须始终是可见的并且在视口的底部。

我不希望tu使用任何JS或Expression。我发现只有CSS才能做到这一点的许多答案,但是所有人都认为标题和结尾的高度是恒定的并且是已知的,这是我的情况。我的想法仍然是在BODY和DIV上使用高度和溢出属性,以便使DIV之一可以滚动,并具有最大可用显示高度。但是到目前为止,找不到有效的解决方案。

我已经尝试过了(只有两个部分,标题和内容):

<body style="overflow: hidden; height: 100vh"> <div id="MyHeader"> blablabla </div> <div id="MyContent" style="overflow: scroll;"> <P>Many lines of content ...</P> </div>

我确实在内容DIV上看到了v滚动条,但是它是全高且无效,所以我根本看不到它的溢出部分。

注意:如果这不是正确的方法,我可以考虑使用1-col表格,将总高度设置为100vh,并将一个单元格设置为v-scrollable。但是我看到这比较棘手,并且在某些浏览器上可能会有副作用。...

我有一个三部分的页面:1个标题部分必须始终可见并且在视口的顶部,1个内容部分必须是可滚动的,1个尾随部分必须始终是可见的并且在视口的底部。...] >

您是否尝试过position:sticky属性?我认为它确实可以满足您的情况,here is a good read HTML文档中元素的位置。

header, footer {position:sticky; background:#ccc} header {top:0} footer {bottom:0}
<header>
<H1>Any height header block</H1>
</header>
<article>
<p>I'll be scrollable article</p>
<br><br><br><br><br><br><br><br>
<p>I'll be scrollable article</p>
<br><br><br><br><br><br><br><br>
<p>I'll be scrollable article</p>
<br><br><br><br><br><br><br><br>
<p>I'll be scrollable article</p>
<br><br><br><br><br><br><br><br>
</article>
<footer>
<H2>Any height footer block</H2>
</footer>
这可以通过位置sticky实现将页眉和页脚设置为粘性,并使用top: 0设置页眉和bottom: 0设置页脚。

这里是一个示例:https://codepen.io/itsashis4u/pen/ZEEEKwq

html css height overflow
2个回答
0
投票
您是否尝试过position:sticky属性?我认为它确实可以满足您的情况,here is a good read HTML文档中元素的位置。

0
投票
这可以通过位置sticky实现将页眉和页脚设置为粘性,并使用top: 0设置页眉和bottom: 0设置页脚。
© www.soinside.com 2019 - 2024. All rights reserved.