html中index.css里面写什么,css中z-index层级

1.z-index简介

(1) 概念

z-index属性指定了元素与元素之间的z轴上的顺序,而z轴决定元素之间发生覆盖的层叠关系。

(2) 属性值

1.默认auto

为什么元素添加定位属性(不包括static)后会覆盖普通元素?

元素添加定位属性(不包括static)后,z-index默认是auto,在层叠水平上相当于z-index为0,但是不会产生层叠上下文,但是会比普通元素没有z-index的层级要高。

2.数值

z-index支持正负值

3.inherit

继承父元素的z-index值

2.css中的层叠上下文

(1) 概念

层叠上下文是html中的一个概念,当一个元素元素含有层叠上下文的时候,那么此元素就更靠近我们的眼睛(假如我们看一堵墙的时候,只能看到墙,后面的东西我们看不到,那这堵墙就相当于含有层叠上下文,更靠近我们,后面的东西可以看做是普通元素)。

(2) 如何产生层叠上下文?

第一种方法,页面根元素(html页面根元素就是html)天生具有层叠上下文,我们称它为“根层叠上下文”。

字体在背景上就是以页面根元素为层叠上下文为基础进行覆盖的,字体是inline元素,而background是层叠顺序最低的元素,遵循层叠顺序。

第二种方法,定位元素的z-index为数值的层叠上下文。

div{position:absolute; z-index:1;}

第三种方法,其他css的属性。

这些属性可以看做z-index为auto

z-index值不为auto的flex项(父元素display:flex|inline-flex)。

元素的opacity值不是1。

元素的transform值不是none。

元素的mix-blend-mode值不是normal。

元素的filter值不是none。

元素的isolation值不是isolate。

position:fixed声明。

元素的-webkit-overflow-scrolling为touch。

3.css中的层叠水平

在层叠上下文中往往包含很多元素,这么多元素由层叠水平来决定z轴上的先后顺序,不至于相互打架,一起相争。

4.css中的层叠顺序

层叠顺序是指不同元素相互层叠,规定先后顺序的一套规则。而层叠上下文和层叠水平都是概念。

层叠水平有七个级别!我们引用大神张鑫旭的七阶图。

5cbbd0638449

图一

小栗子:

id为box的div内部包含span元素

5cbbd0638449

图二

5cbbd0638449

图三

根据图三我们看出,span元素由于设置负的z-index位于div后,这里我们可以从上图中块状元素覆盖z-index为负值的元素,而层叠顺序是需要在层叠上下文中,这里的层叠上下文就是根层叠上下文。

下面布局为div中有span和img元素,span在前,并且设置position:relative,图片透明度为0.7。

5cbbd0638449

图四

图四我们可以看出图片在文字之上,由于span标签已经设置了position:relative,此时span标签默认z-index:auto,根据图一我们可以看出,图片层级低于z-index:auto,此时图片应该会在文字之下,这种情况就是透明度改变了图片的层级。

5cbbd0638449

图五

图五所示,图片透明度为1,自然图片变成普通流中的元素,被相对定位元素span覆盖,这里的opacity我们可以换成上面如何产生层叠上下文第三种方法中的任意一个,请自行尝试。

5.z-index的层叠

(1) 不发生嵌套

没有层叠上下文,则根据DOM顺序,后面的覆盖前面的。

在有层叠上下文的时候,根据z-index的数值大小,谁大谁在上面。

(2) 发生嵌套

每个层叠上下文相当于每一个独立的个体,内部的元素无论z-index为多大,对最顶部同级的层叠上下文元素毫无影响。

5cbbd0638449

图六

效果如下:

5cbbd0638449

图七

子级无论z-index为何值,都不会对父级元素层级造成影响。

为了方便理解,你可以把同一层级的层叠上下文元素看做是两个不同的人,不同的人有不同的高度,你可以比较两个人的高度,但是你不能说手长身高就更高一点吧。

层叠上下文内部的其他元素的覆盖关系就是以父级为根层叠上下文,重新按照上面的规则进行覆盖。

5.z-index使用

(1) z-index的技巧

1.定位元素z-index:auto可以看成z-index:0

例如:定位元素(不包括static)的层级要比普通元素层级要高。

2.z-index不为auto会产生层叠上下文

例如:两个同级div都设置relative和z-index为数值,这两个div就会产生层叠上下文,内部元素永远不会影响到父级div的覆盖关系。

3.z-index层叠顺序终止与父级层叠上下文

(2) z-index值最好不要超过9

z-index在使用过程中,为避免一个项目多人协作产生互相覆盖的问题,所以在使用z-index的时候,不要让z-index大于9,防止同事设置弹出框或其他层级要求很高的无法覆盖。

(3) 获取最高层级

我们在用到一些插件什么的时候,有时插件有一个很高的层级,我们自定义的元素需要覆盖在其之上,这时我们可以通过js获取body内最高层级,让我们自定义的元素z-index等于最高层级的z-index+1。

下面是js获取最高层级代码,感兴趣的可以看一下。

5cbbd0638449

图八

(4) 利用z-index隐藏

在模拟button和input.submit的时候,我们可以设置样式如下:

button{

position:absolute;

z-index:-1;

}

label{

background:#999;

padding:8px 16px;

line-height:30px;

color:#fff;

}

上面父级无定位z-index设置,自然不会创建层叠上下文,此时层叠上下文为根层叠上下文html,则button是以为层叠上下文根元素html来进行覆盖,由于label为inline元素,button层级为z-index负值,根据层叠顺序我们可以明白button在body上面,而label位于button之上。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
z-indexCSS属性之一,用于控制元素在层叠上下文的显示顺序。未设置z-index属性的元素会采用默认值0,而设置了z-index属性的元素可以通过属性值的大小来确定其层级关系。 当设置了z-index属性的元素的属性值大于0时,该元素的层级会高于未设置z-index属性的元素。这意味着具有较高属性值的元素会覆盖在较低属性值的元素之上。 然而,z-index受限于层叠上下文的影响。即使一个元素具有较高的z-index属性值,但如果它所属的层叠上下文的z-index值小于其他元素所属层叠上下文的z-index值,那么它仍然会处于下方。因此,层叠上下文的z-index值比元素自身的z-index值更重要。 另外,当设置了z-index属性的元素的属性值为0时,它与未设置z-index属性的元素层级相同,遵循后面的元素覆盖前面元素的规则。 总结来说,z-index属性用于控制元素在层叠上下文层级关系,较高的属性值会覆盖较低的属性值,但受限于层叠上下文的影响。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [CSSz-index 属性详解](https://blog.csdn.net/weixin_45092437/article/details/126493240)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [CSS深入理解z-indexz-index相关知识总结)](https://blog.csdn.net/qq_41000891/article/details/110005863)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值