问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

div css问题

发布网友 发布时间:2022-05-14 03:31

我来回答

4个回答

懂视网 时间:2022-05-14 07:53

这篇文章主要介绍了CSS中 opacity的设置影响了index(层数)的改变的问题,通过各种情况出现的问题进行了总结并附上了代码,具体操作步骤大家可查看下文的详细讲解,感兴趣的小伙伴们可以参考一下。

在使用 opacity 属性来实现页面整体透明的时候,发现了一个问题。如果两个层发生了重叠,使用了 opacity 属性并且属性值小于1的层,会覆盖掉后面的层。于是动手做了个实验,来验证 opacity 的层次。

网页中的层叠规律是这样的:如果两个层都没有定义 position 属性为 absolute 或者 relative 属性,哪个层的HTML代码放在后面,哪个层就显示在上面。如果指定了 position 属性,并且设置了 z-index 属性,谁的值大,谁就在上面。

Opacity 属性引发的层叠问题

而对于没有激活 z-index 的普通层来说,如果那个层使用了属性值小于1的 opacity 属性,哪个层就会显示在上面。我们做一个Demo。代码如下:


<html>
<head>
 <title >带有 opacity 的层叠问题</title>
 <style>
 html{padding:40px;}
 .dd{width:100px;height:100px;}
 #a{background:red;}
 #b{background:blue;margin-left:20px;margin-top:-80px;}
 #c{background:green;margin-left:40px;margin-top:-80px;}
 </style>
</head>
<body>
 <p id="a"></p>
 <p id="b"></p>
 <p id="c"></p>
</body>
</html>

保存为 html 文件打开之后,可以看到正常的次序

正常的层叠

这时候,我们为 #a 加上属性 opacity:0.9 神奇的事情发生了,它覆盖了另外两个层:

加上小于1的 opacity 之后的层叠

只有当为另一个层(例如:#c)也设置一个小于1的opacity值(例如:0.8)之后,后面的 #c 才能安装正常的规则覆盖在 #a 上面。

同时为另一个层赋值 opacity

这样,增加了小于1的 opacity 属性的层,升高了一个层次。至于里面的科学原理,我没有想明白,或许也可能是一个小BUG。但是有时候这种情况是我们不希望发生的。

通过定义 position 的属性来解决问题

那么如何来解决这个问题呢?前面也说过了,正常的情况下,指定了 position 并且指定了 z-index 值的层,拥有比普通层更高的层次,那么指定 opacity 的层和指定了 position 的层相比呢?我们对 #b 加上 position:relative 看看。这时候的样式代码如下:


#a{background:red;opacity:0.9;}
#b{background:blue;margin-left:20px;margin-top:-80px;position:relative;}
#c{background:green;margin-left:40px;margin-top:-80px;opacity:0.8;}

保存刷新后,看到效果是这样的:

对层使用了 position 属性之后的层叠效果

也就是说,对层使用 position 属性的 relative 之后,可以使其层次和 opacity 相同,这样之后,按照正常的排序进行层叠显示(在后面的实验中,我对 absolute 属性值也做了测试,结果和 relative 属性值表现的相同)。当我们取消了 #c 的 opacity 属性之后,我们可以看到,#c 被排在了最下面。

对底层取消 opacity 属性之后的效果

还没有完,之前只是对 #b 激活了 position:relative 属性,还没有使用 z-index。我们对 #b 进行了 z-index 的设置(例如:100),很显然的,#b 成为了最顶层。

对中间层设置 z-index 的效果

层叠问题总结

使用了 position 属性值为 absolute、relative 的层,将会比普通层更高层次。使用了小于1的 opacity 属性的层,也比普通层更高层次并且和指定 position 的层同层,但是不支持 z-index 属性,所以指定 position 的层,可以使用 z-index 属性,来覆盖带有小于1的 opacity 属性的层。”

热心网友 时间:2022-05-14 05:01

是滤镜吗?从来不用滤镜,从你的思路来考虑的话应该有两个办法,一是把内部的DIV的透明度调节为不透明(不知道管不管用),另一个办法是把不透明的DIV拿出来,放到透明DIV之外,再通过定位来实现他们的重叠,看起来的效果就是大的在外面,小的在里面

热心网友 时间:2022-05-14 06:19

只能用两个DIV了。通过绝对定位让们重叠在一起。z-index 不同就行了。可能还要同时让他们在网页中居中吧。参考下面的代码:
#dbg{ position:absolute;width:400px; height:300px; left:50%; top:50%; margin-left:-200px; margin-top:-150px; background:#FFFFFF; z-index:100;filter: Alpha(Opacity=40);opacity: 0.4;}/*opacity:0.4ff下的透明*/
#d{ position:absolute;width:320px; height:220px; left:50%; top:50%; margin-left:-160px; margin-top:-110px; background:#FFFFFF; z-index:101;}

热心网友 时间:2022-05-14 07:53

首先在一个层(z-index)上只能设置一个滤镜fiter:alpha(opacity=level),或者设置多个也只能有一个起作用,而在其他w3c浏览器上设置opacity:level/100不会彼此干扰!其中0<level<100;

要实现你要的效果,代码如下:
html代码:
<div id="wrap">
<div class="bigbox"></div>
<div class="smallbox"></div>
</div>

css代码:
#wrap{ position:relative;}
.bigbox{ position:absolute; z-index:2; top:0; left:0; filter:alpha(opacity=40);opacity:0.4;}
.smallbox{ position:absolute; z-index:99; top:0; left:0; background:#fff;}

用上述代码即可实现。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
2198香辣虾是什么意思 虾什么梗 肖战 刻纸制作需要哪些步骤 好玩的生存游戏手游(好玩的生存游戏手游推荐) 北京电脑职业培训学校都有哪些北京电脑培训班都有哪些 欧盟商标注册需要提供什么资料? 怎么注册欧盟商标?需要准备哪些材料? 5g手机有什么好处 5g手机大概多少钱 口水臭是什么原因呢? 口水臭是什么原因 口水臭怎么改善 爱立信是哪个国家的 摩托罗拉,诺基亚,索尼爱立信,索爱等名牌手机属于哪些个国家的 《诺基亚。摩托罗拉。索尼爱立信》分别都是哪三个国家生产的? 诺基亚,索尼爱立信,摩托罗拉,明基西门子,飞利浦分别是哪个国家生产的? 诺基亚、索尼爱立信、三星、LG、摩托罗拉,这些手机品牌都是那个国家生... 爱立信是哪个国家啊 飞利浦 LG TCL 诺基亚 西门子 爱立信 摩托罗拉 分别是哪国的? 诺基亚,摩托罗拉,索尼爱立信各是哪产的? 诺基亚、摩托罗拉、爱立信等手机分别是哪里产的?(国外的) 诺基亚,阿朗爱立信分属哪国? 爱立信是哪国的? 单位组织开会,给参会者买什么礼品好 单位组织活动,要发奖品,大家给出出主意吧 单位发什么奖品礼品 再创历史新高 本田汽车2019年在华销量155万辆 飞度重回万台俱乐部 本田为何销量增长?与优惠有关 5月,东本月销65534台,广本月销68696台,长马月销14326台 超额完成目标,本田在华累计销量超155万辆!思域、雅阁最受欢迎 本田汽车1月在华销量14.9万辆 同比涨9.8% 本田2020年在华挑战155万辆+ 新车阵容曝光 云南省2011年国家励志奖学金什么时候发下来? 未满一年怎么改第二次 如何强制二次修改 我修改了一次,我想修改第二次,怎么办? 我设置过一次了,还能改第二次吗?怎么改 职称是什么?有什么用? 网站css文件出现如下错误应该如何修改呢 可以改第二次吗 已经改过一次了,想再改一次,怎么改? 怎么修改第二次 第二次该如何修改? 开发和测试共用一个环境,如何保证测试结果不受影响? 怎么修改第二次? 怎么修改第二次? 一年内怎么修改第二次 第二次修改技巧 可以第二次修改? 一年内怎么修改第二次 修改了一次,怎么强制修改第二次 怎样二次修改