我不确定我的需求是否可以完成,但我喜欢flex(或包括表格布局的CSS,如果能够工作)解决方案提供双固定(固定 - 不粘)页眉和页脚如下:
***header one - fixed - dynamic height***
***header two - fixed - dynamic height***
***content - scrolls as needed***
***fixed one - fixed - dynamic height***
***footer two - fixed - dynamic height***
我花了好几天搜索和尝试的东西,可能最接近this js fiddle整体工作,除了页眉和页脚内容超过页面宽度时不会换行。如果需要,我可以考虑固定的高度,但更喜欢动态。此外,如果重要,有时标题页眉和页脚1将不在页面上。
任何想法都表示赞赏!
答案 0 :(得分:1)
在这里,我认为这很有效。
你必须有最大高度,否则列会扩展,我选择100vh。
我假设您并不意味着页眉/页脚是position:fixed
,因为它们将不在文档流中,并且不会影响未定位元素的高度。
相反,我认为你的意思是主要内容必须适合它们,无论它们的大小和所需的溢出。
我已经添加了一个'扩展'将鼠标悬停在内容部分,以便您可以看到溢出生效。
body {
padding: 0;
margin: 0;
}
.container {
height: 100vh;
max-height: 100vh;
width: 80%;
margin: auto;
display: flex;
flex-direction: column;
}
div {
flex: 0 0 auto;
}
.one {
background: lightblue;
}
.two {
background: lightgreen;
}
main {
flex: 1 1 auto;
overflow-Y: auto;
background: pink;
}
main:hover .expander {
height: 1000px;
}
p {
padding: 0 1em;
margin: 0;

<div class="container">
<div class="header one">
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Vitae, alias mollitia. Laborum et cupiditate</p>
</div>
<div class="header two">
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ex excepturi molestiae voluptates nesciunt, recusandae error,</p>
</div>
<main>
<div class="expander"></div>
</main>
<div class="footer one">
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Consequatur incidunt, esse quaerat illum ipsa. Reiciendis corrupti aliquid placeat</div>
<div class="footer two">
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Dolorum rerum tempore dolor tenetur expedita eligendi nemo numquam veniam laboriosam.</p>
</div>
</div>
&#13;