为什么';T CSS固定定位只考虑视口吗?

为什么';T CSS固定定位只考虑视口吗?,css,width,css-position,fixed,Css,Width,Css Position,Fixed,据我所知,CSS固定位置元素仅与视口相关。但是,据我所知,这是正确的,除非“left”未指定,它不会默认为0,而是默认为其容器的左边缘-在本例中,是main div。 HTML: <div id="main"> <div id="fixed"></div> <div id="content"></div> </div > 展示在。如果我指定left:0,固定元素将运行屏幕的宽度。是什么导致了这种行为?如果不

据我所知,CSS固定位置元素仅与视口相关。但是,据我所知,这是正确的,除非“left”未指定,它不会默认为0,而是默认为其容器的左边缘-在本例中,是main div。 HTML:

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

展示在。如果我指定left:0,固定元素将运行屏幕的宽度。是什么导致了这种行为?如果不指定左、右、上或下,默认设置是什么?

您看到的行为是正确的

如果将
position
属性设置为
absolute
fixed
的值,并且未指定偏移量,则元素将定位到静态位置,即它将使用
position:static
所处的位置

但是,不同之处在于,具有绝对/固定位置的元素将从正常文档流中取出,而与偏移量值无关(自动或明确指定)

参考:

具体而言,以下部分(我的解释):

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

如果要了解偏移对高度的影响,请参见以下内容:

#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
}