1.概念
stacking context
网页中的元素级别不同,有z轴
2.层叠水平
普通元素的层叠水平优先由层叠上下文决定,层叠水平的比较只有在当前层叠上下文元素中才有意义
老时代层叠顺序:
- 正z-index
- z-index: 0
- inline / inline-block 内联盒子
- float 浮动盒子
- block 块级水平盒子
- 负z-index
- 层叠上下文 background/border
内联元素层叠顺序要比浮动元素和块状元素要高
优先显示的顺序是:
inline和inline-block一般是内容
float和block一般是布局
background和border一般是装饰
层叠黄金准则:
1.谁大谁上
z-index值大的那个覆盖z-index小的那个
2.后来居上
层叠水平一直,层叠顺序相同时,在DOM流中处于后面的元素会覆盖前面的元素
3.层叠上下文的创建
根层叠上下文
html标签,绝对定位时,如果没有其他元素限制,就会相对浏览器窗口定位的原因z-index为数值的定位元素的传统层叠上下文
其他css3属性
z-index: 0所在的div是层叠上下文元素,而z-index: auto所在的div是一个普通元素,里面两个的层叠比较就不受父级影响,谁大谁上的准则
z-index一旦变成数值,都会创建一个层叠上下文,每个层叠上下文是自成体系的,当元素发生层叠时,整个元素被任务是在父层叠上下文的层叠顺序中