<html>
<body>
<div class="fixed-top-bar" style="position:fixed"></div>
<div class="content" style="position:static"></div>
</body>
</html>
在我的浏览器中,两个div都从浏览器的左上角开始。
在firebug中,我将div设置为“display:block”,因此每个div元素应占用一行空格。 为什么我看到它们堆叠在左上角?我怎样才能让它看起来很正常?
答案 0 :(得分:4)
应用position: fixed
时,元素会从页面的自然流中拉出。这会导致所有其他元素忽略该元素的位置。这就是静态div
位于固定div
之下的原因。
固定div
的位置与父元素相关,在这种情况下为body
。由于您未向其提供任何left
top
right
bottom
位置数据,因此它的行为与top: 0; left: 0;
完全相同,恰好与您的位置相同静态div
位于下方。
要解决此问题,我只需向padding-top
添加相同数量的body
,因为固定div
为高。
您可以在此处详细了解:https://developer.mozilla.org/en/CSS/position
顺便说一句,div
自然就像你给它display: block
一样。事实上,这是它唯一的默认样式。
答案 1 :(得分:1)
对于“position: fixed
”:元素相对于浏览器窗口定位。
这会覆盖div的display: block
设置。因此,如果可以,请将fixed
的定位更改为其他值,并遵守其他元素规则。