【发布时间】:2014-09-28 23:23:20
【问题描述】:
我想要一个带有 %-height 属性的粘性标题。页眉下方的部分应占据页面的剩余高度,例如:header=10% 所有其他部分至少占 90%。这类似于一个相关问题:CSS Sticky Header/Footer and Fully Stretched Middle Area?,但他使用的是固定的 px-height,而我想要 %-height。我试图在我的部分使用边距,但这似乎不起作用。在我的部分上使用边距和 90% 的高度似乎不起作用。
目前我能够想出:http://jsfiddle.net/K9m63/。但是有几个问题:
- 第一部分消失在标题下方。
- 由于第 1 点,部分 div 太高,因此没有占用剩余大小。
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;
}
谢谢!
【问题讨论】:
-
为什么使用
position: fixed; top: 0px;?通过删除它,您可以看到第一个 div 的内容。 -
因为它需要粘性并保持在相同的位置(= 顶部:0px 并固定)。
-
然后您可以使用
body{padding-top: 38px;}以便显示内容。检查演示。 jsfiddle.net/K9m63/1 -
我不想在标题section{other section}之间有任何空格。现在它们是那些不需要的项目之间的空间。在调整我的屏幕大小时,我使用固定填充得到了不想要的效果(它必须是响应式的;-))。