z-index

定义

  • z-index 属性设置元素的堆叠顺序。拥有更高堆叠顺序的元素总是会处于堆叠顺序较低的元素的前面。

*注释

  1. z-index只对设置了position 属性为 relative, absolute 或者 fixed 的元素才生效.
  2. z-index 可以为负值

层级关系的比较规则

  • 对于同级元素,正常流中的元素后面的会覆盖前面的。
    <div class="box1">box1</div>
    <div class="box2">box2</div>
  • 对于同级元素,设置了定位同时设置了z-index的元素,z-index大的会覆盖z-index小的元素。
    <div class="box1" style="position:relative; z-index:2">box1</div>
    <div class="box2" style="position:relative; z-index:1">box2</div>


  • 设置了定位的元素,会覆盖没有设置定位的元素或position为static的元素。

  • 未设置z-index的元素不会参与层级关系的比较,而设置了z-index=0后,就会参与层级关系的比较,其位置就会在z-index为负数的同级元素的前面,在z-index为正数的同级元素的后面。

  • 如果所有节点都定义了 position:relative. z-index 为 0 的节点与没有定义 z-index 在同一层级内没有高低之分; 但 z-index 大于等于 1 的节点会遮盖没有定义 z-index 的节点; z-index 的值为负数的节点将被没有定义 z-index 的节点覆盖.

  • 对于父子元素,若父元素不设置z-index,那么子元素的z-index会生效,比如设置为负,就会在父元素下层。

  1. 子元素z-index跟随父元素
  • 如果同级的A, B 节点都定义了 position:relative, A 节点的 z-index 比 B 节点大, 那么 A 的子节点必定覆盖在 B 的子节点前面.
  • 如果所有节点都定义了 position:relative, A 节点的 z-index 和 B 节点一样大, 但因为顺序规则, B 节点覆盖在 A 节点前面. 就算 A 的子节点 z-index 值比 B 的子节点大, B 的子节点还是会覆盖在 A 的子节点前面.
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 转载于(http://www.cnblogs.com/ForEvErNoME/p/3373641.html)CSS...
    陌客百里阅读 5,535评论 1 0
  • 概念 z-index 属性设置元素的堆叠顺序。拥有更高堆叠顺序的元素总是会处于堆叠顺序较低的元素的前面。 层级关系...
    DecadeHeart阅读 4,463评论 0 0
  • 概念z-index 属性设置元素的堆叠顺序。拥有更高堆叠顺序的元素总是会处于堆叠顺序较低的元素的前面。 层级关系的...
    王钰峰阅读 4,274评论 0 0
  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 14,687评论 1 92
  • CSS 定位 CSS有三种基本的定位机制:普通流,浮动,绝对定位(absolute, fixed):普通流是默认定...
    _空空阅读 11,085评论 0 15