css属性z-index解析

Posted 登楼痕

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了css属性z-index解析相关的知识,希望对你有一定的参考价值。

什么是z-index?

z-index属性决定了html元素的层级,也就是z轴的位置。因为z轴方向是垂直于视口指向用户,所以值越大说明在z轴方向上离用户端更近。

那在没有z-index属性设置的情况下,z轴的堆叠顺序是怎么样的呢?以下的列表就是顺序由低到高的一个排列:

(1)层叠上下文中的背景和边框

(2)具有负值的层叠上下文元素,按顺序展示

(3)没有定位、没有浮动,块级元素,按顺序展示

(4)没有定位,浮动元素,按顺序展示

(5)行内元素

(6)定位元素

当然正常状态下这种顺序并不明显因为元素不会堆叠在一起,可以用过margin负值来验证一下:

可以看到当给了下面两块元素margin-top:-20px并且不带z-index的时候,后一个元素覆盖在了前一个元素上面,这是默认的一个堆叠顺序展示。

尽管z-index这个属性很简单,但是由于错误的假设,往往给初学者造成了混淆。这个混淆是由于z-index这个属性,只有在元素的position被设置为absolute,fixed或者relative;或者是flex子元素的时候才会生效

为了验证这一点,我们给前两个div加上z-index,让红块的z-index值大于黄块,结果是毫无变化,如图。

然后我们再给它俩都加上position:relative;结果就是我们想要的那样,黄块覆盖在了红块之上:

z-index属性的取值可以时候正值、负值或者是auto,当设置为auto的时候,元素的堆叠顺序同其父元素。 

所以当发现z-index不生效的时候,看看元素的position的定位是不是非static~

以上是关于css属性z-index解析的主要内容,如果未能解决你的问题,请参考以下文章

css属性z-index解析

css属性z-index解析

使用负 CSS 自定义属性 [重复]

CSS样式中z-index属性

css z-index属性

CSS3图片翻转切换案例及其中重要属性解析