我想要一个带有%-height属性的粘性标头。标题下方的部分应占用页面的剩余高度,例如:header = 10%所有其他部分至少为90%。这类似于一个相关的问题:CSS Sticky Header/Footer and Fully Stretched Middle Area?,但他使用固定的px-height,而我想要%-height。我尝试在我的部分使用保证金,但这似乎不起作用。在我的部分上使用边距和90%高度似乎并不奏效。
目前我能够提出:http://jsfiddle.net/K9m63/。但是有一些问题:
HTML
<header>
<nav>Test</nav>
</header>
<section>
<div class="container yellow">1</div>
</section>
<section>
<div class="container pink">2</div>
</section>
<section>
<div class="container purple">3</div>
</section>
CSS
body, html {
height: 100%;
}
header {
height: 10%;
background-color: green;
position: fixed;
top: 0px;
width: 100%;
}
.helper {
display: inline-block;
height: 100%;
vertical-align: middle;
}
.nav-image {
vertical-align: middle;
}
section {
height: 100%;
width: 100%;
background-color: red;
}
.container {
width: 72.8125%;
background-color: blue;
margin: 0px auto;
height: 100%;
}
.yellow {
background-color: yellow;
}
.pink {
background-color: pink;
}
.purple {
background-color: purple;
}
谢谢!
答案 0 :(得分:1)
可能的解决方案:
我已将所有部分包装成2个div。
<div class="wrapper">//rest 90% of the page
<div class="wrapper2">//100% of parent
<section>
<div class="container yellow">1</div>
</section>
<section>...
</div>
</div>
CSS:
.wrapper {
min-height:90%;
height:auto !important;
position:relative;
top:10%;
}
.wrapper2 {
height:100%;
width:100%;
position:absolute;
}
另外,将z-index:1;
添加到header
。
此处更新了fiddle。
答案 1 :(得分:0)
根据您的绘图,这是您可以*的方式。 -但也有“固定” /或“固定”定位。 -这种布局将迫使您在页面内容下方实施自己的滚动,这很麻烦。
html, body {
height: 100vh; /* you can use vh or % - but either way... */
height: 100%; /* they don't know their own height... how would they? */
}
body {
margin: 0;
}
.site-header {
background: #ff6666;
height: 10%;
}
.page-content {
background: #6666ff;
height: 90%;
}
<header class="site-header">
header
</header>
<main class="page-content">
main
</main>