1

CSS 固定位置要素はビューポートのみを基準としていると理解しています。ただし、私が知る限り、「左」が指定されていない場合、デフォルトで 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

表示されている動作は正しいです。

positionプロパティをabsoluteまたはの値に設定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 に答える