2013-09-25 37 views
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,則固定元素將運行屏幕的寬度。什麼導致這種行爲?如果我沒有指定左,右,上或下,默認值是什麼?

回答

2

您所看到的行爲是正確的。

如果設置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

相關問題