做一个不与顶部重叠的固定顶杆的最佳方法是什么?

时间:2009-03-11 04:40:09

标签: css

例如,stackoverflow有一个新成员的顶部栏。顶部栏已固定并向下推页面而不会重叠页面顶部。

这是如何完成的?

的Javascript?或者这可以用css完成吗?

4 个答案:

答案 0 :(得分:9)

您可以执行以下操作来创建固定标头:

<style>
body { margin: 0; }
div.header { position: fixed; height: 50px; width: 100%; }
div.content { padding-top: 50px; }
</style>

<body>
<div class="header">header</div>
<div class="content">content</div>
</body>

也许请查看ie5.5 / ie6.0修复此处:http://www.howtocreate.co.uk/fixedPosition.html

答案 1 :(得分:4)

在ben_h的回复中将Michiel的代码改编为OP的问题。

<style type="text/css">
body { margin: 0; }
div.header { position: fixed; height: 50px; width: 100%; }
div.content{ /* normal stuff here */ }

/*** Only selects div.content immediately preceded by div.header.
If div.header doesn't appear, it won't select. ***/
div.header + div.content { padding-top: 50px; }
</style>

<body>
<div class="header">header</div>
<div class="content">content</div>
</body>

我会警告你,'IE6不会太喜欢它,但Dean Edwards的IE7.js会增加对兄弟选择器(+)的支持。

答案 2 :(得分:2)

如果栏是position: fixed,防止它重叠内容的一种方法是设置静态高度,然后在主容器上设置相同高度的上边距。

如果您事先不知道固定div的高度,则必须使用JS来发现它的高度并相应地设置容器边距。

答案 3 :(得分:0)

您应该只使用CSS。

这是一篇关于如何创建css设计“圣杯”的精彩文章。

包含三列的页面。一个固定宽度的左侧边栏用于菜单,右侧边栏用于广告或照片,还有一个可扩展的中心与内容一起流动。

请参阅:

寻找圣杯: CSS