千家信息网

如何理解z-index属性

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇文章给大家介绍如何理解z-index属性,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。一、z-index七阶层叠顺序表1.层叠顺序的大小比较:background/borde
千家信息网最后更新 2026年11月03日如何理解z-index属性

这篇文章给大家介绍如何理解z-index属性,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

一、z-index七阶层叠顺序表

1.层叠顺序的大小比较:

background/border < 负z-index < block块状水平盒子 < float浮动盒子 < inline/inline-block水平盒子 < z-index:auto或者看成z-index:0 /不依赖z-index的层叠上下文< 正z-index。

2.层叠顺序级别高的元素覆盖级别低的元素。

二、z-index与创建层叠上下文

1.首先要注意,z-index:auto 虽然可以看作z-index:0 ,但是这仅仅是在层叠顺序的比较上;从层叠上下文上讲,二者有本质差别:auto 不会创建层叠上下文,z-index:0 会创建层叠上下文。

注意有一种特殊情况,那就是IE7下,auto也会创建层叠上下文,不符合标准。

2.z-index层叠顺序的比较止步于父级层叠上下文

控制视图时,如果父级元素没有层叠上下文,则会一直找到根元素作为层叠上下文

3.z-index:数字 + 元素属性 配合得到层叠上下文

①position:absolute/relative以及FireFox/IE下的position:fixed;

当z-index的值为auto时,元素还是普通元素,当z-index的值为具体数字时,就会创建层叠上下文

②z-index值不为auto的flex项(display:flex/inline-flex;)

层叠上下文元素是flex子元素,而不是flex容器元素

4.不需要与z-index:数字 配合就可以创建层叠上下文的属性

①元素的opacity值不为1;

②元素的transform值不为none;

③元素mix-blend-mode(混合模式)值不为normal;

④元素的filter(css3里的滤镜,不是指IE6/7/8/9里私有的那个滤镜)值不为none;

⑤元素的isolation(隔离)值是isolate(元素是孤立的)

isolation:isolate这个声明是mix-blend-mode应运而生的。 默认情况下,mix-blend-mode会混合z轴所有层叠在下面的元素,如果我们不希望某个层叠的元素参与混合就可以使用isolation:isolate。

⑥position:fixed声明,部分浏览器(FireFox/IE)需要z-index:数字 配合 ⑦will-change指定的属性值为上面任意一个

will-change的作用:增强页面渲染性能,即准备GPU(图形处理器)让浏览器加速渲染的

什么是GPU(图形处理器)?GPU是与处理和绘制图形相关的硬件。 GPU是专为执行复杂的数学和几何计算而设计的,可以让CPU从图形处理的任务中解放出来,从而执行其他更多的系统任务,例如,页面的计算与重绘。

当我们通过某些行为(点击、移动或滚动)触发页面进行大面积绘制的时候,浏览器往往是没有准备的,只能被动使用CPU去计算与重绘,由于没有事先准备,应付渲染够呛,于是掉帧,于是卡顿。而will-change则是真正的行为触发之前告诉浏览器,提前预约从容不迫;突然造访手忙脚乱。

⑧元素的-webkit-overflow-scrolling设为touch(移动端特有的原生的滚动)

5.不支持z-index层叠上下文元素的层叠顺序均是z-index:auto;

6.为何定位元素会覆盖普通元素?

例如当图片使用了position:relative;此时图片z-index:auto;这时图片的的层叠顺序 > 内联元素(普通的图片文字是内联元素,层叠顺序是inline/inline-block),所以会覆盖。

三、z-index相关实践时注意的一些原则

1.最小化影响原则

目的:避免z-index嵌套层叠关系混乱

原因:①元素的层叠水平主要由所在的层叠上下文决定

②IE7 z-index:auto;也会新建层叠上下文

做法:①避免使用定位属性

②定位属性从大容器平级分离为私有小容器(relative课程)

2.不犯二准则

目的:避免z-index混乱,出现一山比一山高的样式问题

原因:多人协作以及后期维护

做法:对于非浮层元素,避免设置z-index值,z-index没有任何道理需要超过2

(浮层元素:比如弹框,在页面里拖来拖去)

3.组件层级计数器

目的:避免浮层组件因z-index背覆盖的问题

原因:①总会遇到意想不到的高层级元素(比如其他团队介入,或者使用网上的其他组件)

②组件的覆盖规则具有动态性(比如一个页面有好多个弹框)

做法:组件层级计数器方法:通过js获得body下子元素的最大z-index值,

例如组件默认是m,而body最大是n(n>m),那么就把组件设置为n+1

4.可访问性隐藏 人肉眼看不见,但是辅助设备可以识别的隐藏

z-index负值元素在层叠上下文的背景之上,其他元素之下

做法:z-index:-1;

eg:html代码:

XML/HTML Code复制内容到剪贴板

  1. <input type="submit" id="submit" />

  2. <label for="submit">提交label>

css代码:

XML/HTML Code复制内容到剪贴板

  1. [type=submit]{ position:absolute; z-index:-1; }

关于如何理解z-index属性就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

元素 上下 上下文 顺序 属性 组件 页面 做法 内容 图形 图片 数字 浏览器 处理 浏览 普通 会创 原因 容器 更多 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 广东猪兼强互联网科技有限公司 网络科技有限互联网 合肥互联网科技公司 未来的互联网科技 互联网科技宣传片 多迪互联网科技有限公司 哈尔滨新华互联网科技 互联网金融中的现代科技 互联网还是高科技吗 晓花互联网科技有限公司网址 杭州壁岐互联网科技有限公司 新兴科技互联网创新大赛颁奖典礼 互联网科技扶贫时间 西安小鹰速贷互联网科技有限公司 伊宁互联网科技做什么的 广西科技产业互联网是什么 银川新华互联网科技学校原画 求路客互联网科技电话 科技互联网公司两年变化 山东蛋芒互联网科技有限公司 高科技互联网 互联网络科技有限公司 远拓互联网科技 博兴的互联网电子科技公司 汽车互联网创新科技园 昭通互联网科技选哪家 崇明区互联网教育科技诚信经营 玉溪新华互联网科技好不好 沐思想互联网科技有限公司 浙南科技城互联网大厦招聘
0