层叠上下文

223 阅读1分钟

层叠上下文

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)

如果是不在同一个层叠上下文中的两个元素,那就比较层叠上下文的层叠等级,也就是‘从父’现象。

层叠顺序