我有兩個單獨的DIV
s一個position : fixed
爲通知欄,一個爲主容器,當我給container
一些margin-top
,這也推我的通知欄!獨立元素的邊界如何影響固定元素的位置?
這裏是一個小提琴:http://jsfiddle.net/Zh9k8/2/
而且,我知道我能堅持到與top : 0
頁面頂部,但我想知道爲什麼它會發生。
我有兩個單獨的DIV
s一個position : fixed
爲通知欄,一個爲主容器,當我給container
一些margin-top
,這也推我的通知欄!獨立元素的邊界如何影響固定元素的位置?
這裏是一個小提琴:http://jsfiddle.net/Zh9k8/2/
而且,我知道我能堅持到與top : 0
頁面頂部,但我想知道爲什麼它會發生。
造成塌陷的利潤率普遍的問題:http://www.w3.org/TR/CSS21/box.html#collapsing-margins
解決方法是不使用保證金,而是創造空間的另一種方式。你可以頂邊距添加到.container
和刪除保證金:
的在流塊元素的上邊距崩潰,其第一 在流動塊級的孩子的上邊距,如果該元素沒有頂部 邊框,沒有頂部填充,並且孩子沒有通關。
如果元素的邊距與父元素的頂部邊距一起摺疊,則 方塊的頂部邊緣邊緣定義爲與父親的 相同。
非常混淆的術語,但它描述了到底發生了什麼。
這很好,爲什麼固定格沒有創建自動換行符?放置一個標籤後,邊距不會影響到固定元素的位置......我在說你的答案是正確的,我只是好奇自動休息時發生了什麼。 – BuddhistBeast
因爲根據定義,固定的定位元素完全從文檔流中移除 - 其周圍的所有其他元素的行爲就好像它不在那裏一樣。 – Adam
+1對於固定位置的良好定義,我很難找到這些信息。那麼在所有的本質上,如果你添加了break標籤,那麼就像填充填充一樣簡單。 – BuddhistBeast
您仍然可以使用邊距來創建空間。如果您在body
上設置了最小填充量,它將消除固定塊的邊距塌陷。查看更新的小提琴:http://jsfiddle.net/BMCc9/。
body {
padding: 0.1px;
}
似乎威武的「哈克」,但什麼不在CSS?奇蹟般有效! –
嗯,夠奇怪的,如果你扔在那裏
,它實際上將分裂的數據,像這樣:http://jsfiddle.net/Zh9k8/3/ – BuddhistBeast
這些元素被放置在身體以及,對嗎? – BuddhistBeast
@BuddhistBeast是的。怎麼樣?你的意思是保證金是要父母的元素? – Webinan