以前,我认为子元素的 z-index 不能超过其父元素的兄弟元素的 z-index,该父元素的 z-index 高于其父元素。例如,div A 和 B 是兄弟姐妹。Div A
z-index 为 10,div B
z-index 为 5。Div B
有一个子元素:Div C
,z-index 为 9999。据我了解,不会div C
定位在 上面,因为的父元素 ( ) 有一个较低的z-index 比. 这是正确的,除非z-index 为“auto”。当有一个'auto'的z-index,这将是'0',因为它是从body继承的,位置over ,即使div B的z-index实际上是LOWERdiv A
div C
div B
div A
div B
div B
div C
div A
比它不工作的时候。
从 CSS2 规范中,z-index 'auto' 定义为
生成的box在当前stacking context中的stack level为0。box不会建立新的stacking context,除非它是根元素。
我无法理解“堆叠上下文”。这似乎是定义的 z-index 为 0 和默认为 0 但也没有堆叠上下文的“自动”之间的唯一区别。进一步来说:
为什么没有堆叠内容的元素的子元素的 z 索引与堆叠上下文中的元素不同?
这是一个小提琴,它显示了 z-index 为 0 和 z-index 为 auto 之间的区别。绿色 div 是蓝色 div 的孩子,红色 div 是蓝色 div 的兄弟。