1

据我了解,CSS 固定位置元素仅与视口相关。但是,据我所知,这是正确的,除了如果未指定“left”,它不会默认为 0,而是默认为容器的左边缘 - 在这种情况下,主 div。的HTML:

<div id="main">
    <div id="fixed"></div>
    <div id="content"></div>
</div >

CSS:

#main{
    width:80%;
    margin-left:auto;
    margin-right:auto;
}
#fixed{
    position:fixed;
    width:100%;
    height:25px;
    background:yellow;
}
#content{
    width 100%;
    height:300px;
    background:red
}

在http://jsfiddle.net/2dudX/99/演示。如果我指定 left:0 固定元素将运行屏幕的宽度。是什么导致了这种行为?如果我不指定左、右、上或下,默认值是什么?

4

1 回答 1

2

您看到的行为是正确的。

如果将positionproperty 设置为absoluteor的值fixed,并且未指定偏移量,则元素将定位到静态位置,即使用 时的位置position: static

但是,不同之处在于,无论偏移值如何(自动或显式指定),具有绝对/固定位置的元素都会从正常文档流中取出。

参考:http ://www.w3.org/TR/CSS2/visudet.html#abs-non-replaced-width

具体来说,围绕(我的释义)的部分:

如果'left'和'right'是'auto'并且'width'不是'auto',则将'left'设置为静态位置然后求解'right'

如果您想了解偏移量如何影响高度,请参阅以下内容:
http ://www.w3.org/TR/CSS2/visudet.html#abs-non-replaced-height

于 2013-09-25T20:33:57.257 回答