以前,我相信一個子元素不能被Z-indexed在一個元素上,該元素是它的父元素的一個父元素的z-index比它的父元素高。例如,div A和B是兄弟姐妹。 Div A
具有10的z-index,並div B
有5 Div B
的z-index有一個子元素:Div C
,與9999的z-index從我的理解,div C
將不被定位在div A
,因爲div C
的父母(div B
)的Z指數低於div A
。這是成立的,除非div B
具有「自動」的z-索引。當div B
具有'自動'的z索引(其將是0),因爲它從身體繼承,div C
位置超過div A
,即使div B的z索引實際上是LOWER比它當它不是'不工作。z-index的孩子:'auto'vs z-index:0,什麼是CSS中的「stacking context」?
從CSS2規範,z索引「自動」被定義爲
在當前堆疊內容所生成的框的堆棧級別爲0,除非它是該框不建立新的堆疊內容根元素。
我無法理解「堆疊上下文。」這似乎是0定義的z-index之間和「自動」,這是0的默認情況下,唯一的區別,也沒有堆疊內容。更具體地說:
爲什麼沒有堆疊內容的子元素的子元素與堆棧上下文中的元素不同?
這是一個小提琴,它顯示了z-index爲0和z-index爲auto的區別。綠色div是藍色div的孩子,紅色div是藍色div的兄弟。
更短的答案可能是:你需要一個默認的堆疊順序來處理頁面上沒有明確設置的z-index的任何非定位元素。 – 2013-04-29 20:25:54