为什么不CSS是否固定定位考虑视口而已?(Why Doesn't CSS Fixed Pos

2019-10-18 16:49发布

这是我的理解是一个CSS固定位置元素相对于只视。 在这种情况下,主DIV - 然而,从我所知,这只是如果“左”是不确定的,它不会默认为0,而是什么否则将是其容器左边是真实的。 该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/ 。 如果我指定左:0固定元件将运行屏幕的宽度。 是什么原因导致这种行为? 什么是如果我不指定左侧,右侧,顶部或底部的默认值?

Answer 1:

您所看到的行为是正确的。

如果设置position属性的值为absolutefixed ,且没有指定偏移量,则该构件被定位为静态的位置,也就是说,它会采取与位置position: static

然而,所不同的是用绝对位置的元件/固定取出正常文档流,而不管偏移值(自动地或明确地指定)。

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

具体而言,部分周围(我的意译):

如果“左”和“右”是“自动”和“宽度”不是“自动”,则设置“左”到静态的位置,然后求解“右”

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



文章来源: Why Doesn't CSS Fixed Positioning Consider the Viewport Only?