z-index

作者: JohnsonChe | 来源:发表于2016-07-04 12:29 被阅读34次

默认的摆放规则:

假设元素没有指定的z-index属性,那么元素按照以下顺序叠放(从低到顶或者从下到上顺序):
1.根元素的背景或边界。(最低)
2.普通流(无定位或者static定位)的块元素按照html中出现顺序进行堆叠。(其次)
3.定位元素按照HTML中的出现顺序进行堆叠。(再次)

如图:

Paste_Image.png

如果对这张图还是没理解,请点这个链接.

有浮动元素的规则

对于浮动的块元素来说,堆叠顺序变得有些不同。浮动块元素的放置于非定位块元素与定位块元素之间(从下到上的顺序):

1.根元素的背景或者边界
2.位于普通流中的后代块元素按照HTML出现顺序堆叠。
3.浮动块元素。
4.常规流中的后代行内元素
5.后代中定位元素按照它们在HTML中出现的顺序堆叠。

如图:

Paste_Image.png

使用z-index

如果需要改变元素的默认摆放顺序,只要给元素指定z-index。z-index必须是整数,体现了元素在z轴的位置:

  • 底层:距离观察者最远
  • ...
  • -3层
  • -2层
  • -1层
  • 0层(默认)
  • 1层
  • 2层
  • 3层
  • ...
  • 顶层:距离观察者最近

没有指定z-index的时候,所有元素默认在0层渲染。多个元素的z-index属性相同时按照上文描述的顺序布局。

使用z-index排序的例子:

Paste_Image.png

** 注意: div#5的z-index无效,因为位指定position属性。 **

堆叠上下文

指定z-index属性将构造一个堆叠上下文。

以下元素构成堆叠上下文指:

  • 根元素html
  • 定位元素,且z-index值不为auto。
  • opacity小于1的元素
  • 在移动Webkit、Chrome22+以上,指定position: fixed的元素总是会构造堆叠上下文,即使z-index为auto。

总而言之:

  • z-index不为auto,opacity小于1的元素会构成堆叠上下文。
  • 堆叠上下文可以嵌入其他堆叠上下文。
  • 每个堆叠上下文和它的同级上下文是独立的。
  • 每个堆叠上下文是自包含的。

如图:

Paste_Image.png

以上大部分摘自segmentfault的解释,最后的堆叠上下文说得这么复杂,其实就是元素同级和不同级时的情况。看上图就好理解了。

相关文章

  • z-index学习

    title: z-indexdate: 2017-05-16 z-index z-index z-index 概念...

  • z-index的理解

    第一节:z-index基础 较大的z-index会覆盖较小的那个z-index元素 z-index:auto 默认...

  • z-index属性

    number z-index:3; 按照z-index的大小排序

  • z-index属性的理解

    简单介绍z-index 什么是z-index? z-index 属性设置元素的堆叠顺序。拥有更高堆叠顺序的元素总是...

  • CSS深入理解之z-index 笔记

    z-index 与 css 定位属性 z-index 只对定位元素有作用。 如果定位元素z-index没有发生嵌套...

  • z-index 须知

    z-index 需要先加入 position:absolute/relative 定位 可参考z-index

  • 搞懂Z-index的所有细节

    Z-index测试网站 一 z-index 在什么情况下才生效? Z-index的运用是需要条件的,与其相关的属性...

  • z-index part3

    不支持z-index的层叠上下文元素的层叠顺序均是z-index: auto级别 依赖z-index的层叠上下文元...

  • 堆叠顺序

    元素堆叠顺序简图 background border 块级 浮动 内联 z-index: 0 z-index: +...

  • 不能返回顶部了

    这个回到顶部的层的z-index要大于上面这个层的z-index

网友评论

      本文标题:z-index

      本文链接:https://www.haomeiwen.com/subject/qjicjttx.html