css3 z-index,z-index的工作原理

可能并不是那么显而易见,但是HTML文档中的元素却是存在于三个维度之中。除了大家熟知的平面画布中的x轴和y轴,还有控制第三维度的z轴。

fa80f3d7ea845eb0489542c5d14cdda4.png

像 margin , float , offset 这些属性,控制着元素在x轴和y轴上的表现形式一样。 z-index 这个属性控制着元素在z轴上的表现形式。

z-index属性

z-index属性指定两件事:

当前元素的堆叠顺序

当前元素是否建立新的堆叠上下文

该属性仅适用于定位元素。即拥有 relative, absolute, fixed属性的 position 元素。

z-index属性有三个可能的值:

描述

auto

默认。堆叠顺序与父元素相等。

< integer >

设置元素的堆叠顺序。

inherit

规定应该从父元素继承 z-index 属性的值。

z-index: auto | | inherit

堆叠顺序(Stacking Level)

堆叠顺序是当前元素位于z轴上的值。数值越大表明元素的堆叠顺序越高,越靠近屏幕。

b31c4108827eb33b0fd24299d153f346.png

如果未指定 z-index 的属性,元素的堆叠顺序基于它所在的文档树。默认情况下,文档中后来声明的元素具有更高的堆叠顺序。

计算堆叠顺序

除了指定的 z-index,元素的堆叠顺序是由大量的因素控制的。元素按照下面表格顺序进行堆叠。

位置

描述

CSS

1 (bottom)

元素构成堆叠上下文

z-index: < integer >

2

负堆叠顺序的子元素

z-index: < negative integer > position: relative | absolute | fixed

3

文档流中,非内联,非定位子元素

display: /* not inline */ position: static

4

非定位浮动子元素

float: left | right position: static

5

内联流,非定位子元素

display: /* inline */ position: static

6

堆叠顺序为0的子元素

z-index: auto | 0 position: relative | absolute | fixed

7(top)

堆叠顺序为正的子元素

z-index: < position intege > position: relative | absolute | fixed

堆叠上下文(Stacking Contex)

当我们用 z-index 属性指定元素的堆叠顺序时,我们并不总是指定这个元素的堆叠顺序相关于页面内的其他元素。元素的堆叠顺序只是相关于其堆叠上下文。

这可能会导致一些奇怪的情况,比如具有较大 z-index 的元素并不总是位于具有较低 z-index 元素的上方。

可以用下面的规则解释堆叠上下文。

默认堆叠上下文是根元素

任何HTML文档默认的堆叠上下文都是 元素。因此,除非创建新的堆叠上下文,默认情况下,元素的堆叠顺序相关于页面内的其他元素。

用 z-index 属性建立一个新的堆叠上下文

我们是通过为一个元素的 z-index 属性设置一个整数值来建立新的堆叠上下文。为达到预期效果,首先,设置该整数为当前元素的堆叠顺序,其次,创建一个新的堆叠上下文。

新的堆叠上下文适用于该元素的任何子元素。子元素只和这个层堆叠上下文有关,和根堆叠上下文无关。

在下面的示例中,.foo 属于堆叠上下文 1,而.bar 属于堆叠上下文 2。

2b86d15f6b58af3d66c3883d43418767.png

元素的堆叠顺序不能高于 (或低于) 父元素的堆叠顺序

当父元素的堆叠顺序被设置的时候,这也意味着,它的子元素的堆叠顺序不能高于或低于这一顺序 (相对于父元素的堆叠上下文)。

在下面的示例中,即使 .bar 的 z-index 值高于 .baz,它依然显示 .baz 下方。这是因为,在堆叠上下文1中,.bar 不能高于或低于堆叠顺序1。

.foo { z-index: 1; }

.bar { z-index: 1000; }

.baz { z-index: 2; }

17651311c1141b59265a9ba31ea1bef1.png

2ba64a9f227b987f63a2e1aebad415b3.png

在校学生,本科计算机专业。一个积极进取、爱笑的女生,热爱前端,喜欢与人交流分享。想要通过自己的努力做到心中的那个自己。微博:@静-如秋叶

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/561801.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【CSDN】-京东云部署java项目及性能测试

前言&#xff1a; 最近因为华为云服务器购买过期了&#xff0c;其实本来自己的个人项目部署或不部署到服务器都是可以的、但最近刚好看见京东云服务器在做活动、就想着搞一搞。刚好官方送了我一张代金券。那我就直接用起来吧。 个人需求 因为个人需求、我选择了一个的是2核/内存…

SpringBoot vue图片上传不能立即回显问题解决

最开始项目是放在eclipse之中的、springboot项目默认把静态的文件加载到classpath的目录下的。而此时我们上传的图片并没有传入启动了的项目当中去、所以明明路径是对的、却访问不了、在项目重新启动之后项目会打成新的jar包、这个时候上一次上传的图片才会正常显示。 解决方法…

IDEA中运行springboot+vue项目设置terminal路径

File->settings->Tools->terminal 设置后刷新IDEA即可生效。

win8服务器无法安装win7系统安装,win8怎么安装win7 win8改win7教程详解【图文】

继win7系统后&#xff0c;微软又推出了win8、win8.1以及win10系统&#xff0c;每个系统在原来的版本上都有了更改和创新。大家都知道&#xff0c;人是一种容易习惯的动物。很多人在使用了win7之后&#xff0c;更换到win8系统会很不习惯、觉得win8无法与win7比拟&#xff0c;这种…

【PAG组件】-从解码渲染层面对比 PAG 与 lottie

从解码渲染层面对比 PAG 与 lottie 最近由于业务需求&#xff0c;需要调研一下业界的知名动画渲染框架。经过一些时间的调研与探索&#xff0c;我将目光聚焦在两款不错的动画框架上。一款是知名的 lottie&#xff0c;一款是腾讯出品的 PAG。 lottie 相信大部分端上的研发都会…

电脑预览,电脑怎么预览psd格式?

经常使用PS的朋友们都知道Photoshop文档的默认格式是psd格式&#xff0c;可是在电脑上可能不能像jpg图片一样显示缩略图预览。遇到这种情况我们该怎么办?要是电脑上并没有安装PS软件又该怎么预览?下面我们就一起来看看哪些解决方法。步骤如下:方法一:有安装PS&#xff0c;使用…

一个二线城市程序员的一年【坐标成都】

前言&#xff1a; 好快呀&#xff01;不知不觉一年又快过去了。总的来说还算丰收的一年吧。从毕业之后就一直在成都工作、对于最开始其实并没有特别清晰的职业规划。我还记得面试时面试官经常问到一句话是什么。你为啥选择我们公司&#xff1f;我记得当时回答好像是就说工作岗位…

Web前端期末大作业--汽车主题网页设计002(HTML+CSS+JavaScript+)实现

临近期末, 你还在为HTML网页设计结课作业,老师的作业要求感到头大&#xff1f;网页要求的总数量太多&#xff1f;HTML网页作业无从下手&#xff1f;没有合适的模板&#xff1f;等等一系列问题。你想要解决的问题&#xff0c;在专栏&#x1f447;&#x1f3fb;&#x1f447;&…

速达财务3000服务器账套维护显示,速达3000财务软件使用常见问题

一.安装好速达3000XP网络版客户端后,运行客户端时出现一闪而过?答:如客户端一闪而过,请将速达3000XP服务器的系统日志清空,然后将服务器重启,如不行,需将数据做好备份,然后将服务器端的INTERBASE服务器卸载,重新安装.二.速达3000XP,在创建帐套过程中设置了"帐务系统与进销…

基于javaSpringboot+mybatis+layui的装修验收管理系统设计和实现

&#x1f345; 作者主页&#xff1a;Java李杨勇 &#x1f345; 简介&#xff1a;Java领域优质创作者&#x1f3c6;、【java李杨勇】公号作者✌ 简历模板、学习资料、面试题库【关注我&#xff0c;都给你】 &#x1f345;文末获取源码联系和送书&#x1f345; 前言&#xff1a…

基于前端HTML+CSS+JS实现2022城市新年贺卡特效

临近期末, 你还在为HTML网页设计结课作业,老师的作业要求感到头大&#xff1f;网页要求的总数量太多&#xff1f;HTML网页作业无从下手&#xff1f;没有合适的模板&#xff1f;等等一系列问题。你想要解决的问题&#xff0c;在专栏&#x1f447;&#x1f3fb;&#x1f447;&…

精心整理的10套最美Web前端新年特效---提前祝大家新年快乐(文末送书)

亲爱的小伙伴们&#xff0c;2022年春节就快到了&#xff01;~ 在这里祝各位程序员朋友2022年身体健康,代码没有bug,不用996、远离ICU。 今天给大家精心整理了10套最美前端新年特效&#xff01;提前祝大家新年快乐呀&#xff01;&#xff01;&#xff01;&#xff01; 话不多说、…

基于纯前端CSS3实现倾角瀑布流照片效果显示

&#x1f345; 作者主页&#xff1a;Java李杨勇 &#x1f345; 简介&#xff1a;Java领域优质创作者&#x1f3c6;、【java李杨勇】公号作者✌ 简历模板、学习资料、面试题库【关注我&#xff0c;都给你】 &#x1f345;文末免费获取源码&#x1f345; 临近期末, 你还在为HTM…

eclipse:web.xml<el-ignored>标签报错解决方法

问题&#xff1a;今天在整理eclipse项目的时候web.xml报错 解决方法&#xff1a;在头文件加入 http://www.springmodules.org/schema/cache/springmodules-cache.xsd 即可解决

基于JavaSpringMVC+Mybatis+Jquery高校毕业设计管理系统设计和实现

&#x1f345; 作者主页&#xff1a;Java李杨勇 &#x1f345; 简介&#xff1a;Java领域优质创作者&#x1f3c6;、【java李杨勇】公号作者✌ 简历模板、学习资料、面试题库【关注我&#xff0c;都给你】 &#x1f345;文末获取源码联系&#x1f345; 前言&#xff1a; 随着…

RSA加密:Web前端登录账户密码加密传输

一般在做系统时候对安全性要求比较高&#xff0c;现在通常选择https协议来进行数据传输。很多情况下一般的javaweb网站&#xff0c;如果安全要求不是很高的话&#xff0c;用https协议就可以了。在这种情况下&#xff0c;密码的明文传输显然是不合适的&#xff0c;因为请求如果在…

IDEA编译运行Springboot+vue项目卡死,一直building和copying resources

是因为我把node_modules也放在了resource目录下、编译的时候target文件目录过大或一直递归循环、导致卡死一直在copying resources当中&#xff0c;在IDEA中设置一下忽略node_modules文件夹即可。

基于Java+Jsp+SpringMVC漫威手办商城系统设计和实现

&#x1f345; 作者简介&#xff1a;CSDN特邀作者✌、java领域优质创作者&#x1f4aa; &#x1f345;关注公众号【java李杨勇】 简历模板、学习资料、面试题库等都给你 &#x1f345;文末获取源码联系&#x1f345; 一、前言介绍&#xff1a; 随着社会的快速发展&#xff0c;…

基于Java+jquery+SpringMVC校园网站平台设计和实现

&#x1f345; 作者简介&#xff1a;CSDN特邀作者✌、java领域优质创作者&#x1f4aa; &#x1f345;关注公众号【java李杨勇】 简历模板、学习资料、面试题库等都给你 &#x1f345;文末获取源码联系&#x1f345; 目录 一、前言介绍&#xff1a; 二、功能设计&#xff1…

基于Java+SpringBoot+vue+element等动物救助平台设计和实现

&#x1f345; 作者简介&#xff1a;CSDN特邀作者✌、java领域优质创作者&#x1f4aa; &#x1f345;关注公众号【java李杨勇】 简历模板、学习资料、面试题库等都给你 &#x1f345;文末获取源码联系&#x1f345; &#x1f345;新星计划第三季【Java】赛道的报名入口&…