先來解析幾個概念,基本上了解概念之后就已經能夠掌握z-index屬性了辐董。
所有的引用均來自css2.1規(guī)范
根元素形成根堆疊上下文悴品。
其它堆疊上下文由任意'z-index'的計算值不為'auto'的定位的(positioned)元素(包括相對定位元素)生成,堆疊上下文不一定與包含塊有關简烘。
一些css3屬性會生成堆疊上下文苔严,比如opacity、transform等孤澎。
如果一個元素的position屬性有一個除static外的值届氢,就說它是定位的(positioned)。
堆疊層級覆旭,也就是z-index了悼沈。堆疊層級決定了該盒子在自己屬于的那一個堆疊上下文中的位置。
在每個堆疊上下文中姐扮,下列層按從后向前的順序繪制:(也可以參考下邊的圖)
- background絮供,border
- z-index為負
- block
- float
- inline inline-block inline-table
- z-index為0、auto
- z-index為正
所有的元素都會被計算自身的層疊情況茶敏,這個層疊情況依據層疊規(guī)則來決定壤靶,而元素與哪些其他的元素產生層疊取決于他自身的層疊上下文