我正在努力處理一些基本的CSS佈局流程。如果我有兩個div,一個接一個,第二個div有負的上邊距,我認爲它會覆蓋前面的div。CSS負邊距重疊不適用於子元素
但是,我發現雖然第一個div確實是重疊的,但它的內容卻不是。
<div style="background:green;height:20px;">
<span style="background:red;display:inline-block;padding:2px;">HELLO</span>
<span style="background:red;display:inline-block;padding:2px;">HELLO</span>
<span style="background:red;display:inline-block;padding:2px;">HELLO</span>
</div>
<div style="background:yellow;height:20px;margin-top:-10px;">
</div>
https://jsfiddle.net/xwghd5r2/
這似乎違背了基本的堆疊順序原則:
從https://css-tricks.com/almanac/properties/z/z-index/:
如果沒有任何z-index值,則元素按照它們 出現在DOM中的順序堆疊(在同一層次級別上最低的一個出現在頂部)。具有非靜態定位的元素始終會在具有默認靜態定位的元素頂部出現 。
另請注意,嵌套起着重要作用。如果一個元素B坐在元素A的頂部 ,A元素的子元素,並且不能超過 元件高B.
注:我不會改變尋找修復position
屬性 - 我只是想了解爲什麼這個當前流程正在使用默認的靜態定位。
但我不知道爲什麼,只知道那是t後悔 –