Open Link-Fight opened 3 years ago
提取关键信息:
z-index
: 的值有 auto | auto
,应用于:positioned elements
(定位元素)。
对于定位的框,z-index
属性将指定:
当值是<integer>
,该生成的盒子在当前堆叠上下中的整数的堆叠层级,并且该盒子也会生成一个新的堆叠上下文。
当值是auto
,该生成的盒子在当前堆叠上下文中的堆叠层级是0
,该盒子不会生成一个新的堆叠上下文,除非是根元素。
在CSS2.1
,每个盒子都在三维上有个定位。除了水平位置和垂直位置,盒子沿“z轴”排列,一个一个格式化。当盒子在视觉上重叠时,z轴上的排列就十分重要。
这渲染数绘画到画布的顺序是根据层叠上下文的描述来的。层叠上下文可以内嵌重叠上下文。对于父层叠上下文来说,其每一个子层叠上下文都是一个整体(atomic),当一个盒子是属于某个层叠上下文的将不可能出现在任何盒子之间。
每个盒子都属于某一个层叠上下文。每个定位盒子在层叠上下文中都有整数的层叠级别,该层级将控制其在同一个层叠上下文在z轴上的位置。有着更高层叠级别的盒子会展示在更低层叠级别的盒子的上面。盒子可以有负数的层叠级别。对于在同一个层叠上下文内的多个盒子,但他们有相同的层叠级别时,其位置将根据它出现在文档树上先后顺序来堆叠。
根元素形成根层叠上下文。其他层叠上下文由任何定位元素(包括相对定位的元素)生成,该元素的z-index
的计算值不为auto
。堆叠上下文不一定与包含块相关。在CSS的更多级别中,其他属性可能会引入堆叠上下文,例如“opacity”。
在每个层叠上下文,这些图层将按照以下顺序进行绘制:
在每个层叠上下文中,具有层叠级别0(在第6层中)、未定位浮点(第4层)、内联块(第5层)和内联表(第5层)的定位元素被绘制,就好像这些元素本身生成了新的层叠上下文一样,除了它们的定位子体和任何可能的子层叠上下文都参与了绘制当前层叠上下文。
设置z-index:auto和z-index:0的区别在于,后者后生成一个新的层叠上下文。
w3c规范先行