层叠上下文
strcking context,就是html元素中的三维概念。如果一个元素含有层叠上下文,那么这个元素在Z轴上位于上层,离用户更近。
比如,点击一个提交按钮,弹出来一个弹框,这个弹框就是z轴上最上层的元素。
创建层叠上下文:
- 根元素html就是层叠上下文,‘根层叠上下文’。
- 普通元素设置pisition属性为非static的值,并设置z-index属性为一个数字,会产生层叠上下文。
- css3中的新属性也可以产生层叠上下文。
示例:给第二个字元素的margin-top设为负值,会盖住第一个子元素。第二个子元素再相对定位,查看效果。
层叠等级和层叠顺序
这两个概念都是表述元素在Z轴上的显示顺序。在同一个层叠上下文中,层叠等级越大,就越靠前。 层叠等级由层叠顺序决定。
层叠等级
css2.1中:
- z-index为正
- z-index为auto或0,不依赖z-index的层叠上下文(css3生成的层叠上下文)
- inline/inline-block水平盒子
- float浮动盒子
- block块级盒子
- z-index为负
- 层叠上下文(background/border)
如果是不在同一个层叠上下文中的两个元素,那就比较层叠上下文的层叠等级,也就是‘从父’现象。