CSS层叠相关的理解

     参考张鑫旭慕课网CSS的z-index课程,链接为:https://www.imooc.com/learn/643

1.几个概念

z轴:指的是用户的眼睛与屏幕之间的垂直的轴线,表征了屏幕与用户眼睛之间的距离远近。这里我们一般认为用户的眼睛位置不动,因此通过让页面上的元素成为“层叠上下文元素”来拉近其与用户的距离。

层叠上下文(stacking context):HTML元素中的三维概念,能够创建层叠上下文的元素也被称为层叠上下文元素,层叠上下文元素相比于非层叠上下文元素距离用户眼睛要更近。

能够创建层叠上下文的元素有以下几种:

  1. 根元素:根元素层叠上下文;
  2. z-index为<integer>的定位元素(position:relative/absolute/fixed/sticky);
  3. 不依赖z-index,利用其它属性实现。

层叠水平(stacking level):层叠上下文中的每个元素都有一个层叠水平,层叠水平决定了同一个层叠上下文中元素在z轴上的显式顺序。层叠水平不能脱离与层叠上下文独立存在,必须在同一个层叠上下文中的元素进行层叠水平的判断才有意义。遵循“后来居上”和“谁大谁上”,以及七层层叠水平模型。

完整的七层层叠水平如下:

层叠顺序(stacking order):元素发生层叠时候有着特定的垂直显示顺序。

判断的相关规则为:

  1. 依赖z-index的层叠上下文元素的层叠顺序均是z-index:auto级别;依赖z-index的层叠上下文元素的层叠顺序取决于z-index值。依赖z-index值创建层叠上下文有两种情况:①position为relative/absolute/fixed(部分浏览器);②display:flex|inline-flex容器的子flex项。
  2. 层叠水平的判断要在相同的层叠上下文中才有意义。如果两个元素处于同一个层叠上下文,或者其中一个元素是另一个元素的层叠上下文元素,那么按照七层层叠水平模型判断即可。如果两个带判断的元素处于不同的层叠上下文,那么尽可能小地向上寻找元素的层叠上下文元素,直到处于相同的层叠上下文,再比较。
  3. z-index:auto不创建层叠上下文,z-index:0创建层叠上下文。
  4. 如果根据以上规则无法判断,那么要记得考虑“后来居上”,即DOM结构中后定义的元素的层叠顺序高。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值