CSS3的opacity属性带来的层叠顺序问题解决方法

这篇文章主要介绍了解决css3opacity属性带来的层叠顺序问题的方法,主要针对opacity的属性值小于1的层会覆盖在其他层之上的问题,需要的朋友可以参考下

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

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

发现问题

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

立即学习“前端免费学习笔记(深入)”;

             带有 opacity 的层叠问题        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;}            

保存为 html 文件打开之后,可以看到正常的次序
CSS3的opacity属性带来的层叠顺序问题解决方法

这时候,我们为 #a 加上属性 opacity:0.9 神奇的事情发生了,它覆盖了另外两个层
CSS3的opacity属性带来的层叠顺序问题解决方法

只有当为另一个层(例如:#c)也设置一个小于1的opacity值(例如:0.8)之后,后面的 #c 才能安装正常的规则覆盖在 #a 上面。
CSS3的opacity属性带来的层叠顺序问题解决方法

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

解决问题

那么如何来解决这个问题呢?前面也说过了,正常的情况下,指定了 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;}

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

CSS3的opacity属性带来的层叠顺序问题解决方法

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

还没有完,之前只是对 #b 激活了position:relative 属性,还没有使用 z-index。我们对 #b 进行了 z-index 的设置(例如:100),很显然的,#b 成为了最顶层。
CSS3的opacity属性带来的层叠顺序问题解决方法

得出结论:

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

以上就是CSS3的opacity属性带来的层叠顺序问题解决方法的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1607956.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月23日 21:18:08
下一篇 2025年12月23日 21:18:17

相关推荐

  • 利用CSS3的opacity属性设置透明效果的用法介绍

    这篇文章主要介绍了详解css3的opacity属性设置透明效果的用法,同时还讲到了opacity透明度带有的继承性影响子集元素的问题,值得初学者注意,需要的朋友可以参考下 CSS3 opacity 属性的功能是用来控制网页元素的透明效果(调整不透明度),早期网页设计常常会用到许多的透明效果,通常都是…

    2025年12月23日
    000
  • CSS3中使用RGBa来调节透明度的示例说明

    这篇文章主要介绍了css3中使用rgba来调节透明度的教程,rgba是rgb色彩模型的一个扩展,这个缩写词代表红绿蓝三原色的首字母,alpha值代表颜色的透明度或者说不透明度,需要的朋友可以参考下 在 CSS3 中,增加了一个 opacity 属性,允许开发者设置元素的透明度,现在 opacity …

    2025年12月23日
    000
  • 纯CSS3实现不错的表单验证效果

    这是补充html5基础知识的系列内容,其他为: 一、HTML5– 新的结构元素 二、HTML5– figure、time、details、mark 三、HTML5– details活学活用 四、HTML5– 现存元素的变化 立即学习“前端免费学习笔记(…

    2025年12月23日 好文分享
    000
  • 详解css3文字与字体样式

    这篇文章详解css3文字与字体样式 css3使用服务器端字体: 使用服务器端字体 @font-face { font-family: webFont; /*此代码会首先用客户端字体Arial,如果客户端没有用下面一种服务器端字体*/ /*format格式: (ttf):truetype;(otf):…

    好文分享 2025年12月23日
    000
  • 使用CSS3实现背景颜色渐变

    这篇文章介绍使用css3实现背景颜色渐变  CSS渐变色概念: CSS渐变色(Gradients)能让我们用一种颜色渐变的效果修饰一个空间——从一种颜色过渡到另外一种颜色——填充这个空间。渐变色有两个形式:linear (线性渐变) 和 radial (环形渐变)。很显然CSS渐变色(Gradien…

    2025年12月23日
    000
  • 利用css3实现圆形进度条

    在开发微信小程序的时候,遇到圆形进度条的需求。使用canvas绘图比较麻烦:   1、为了实现在不同屏幕上面的适配,必须动态的计算进度条的大小;   2、在小程序中,canvas的画布具有最高的层级,不易于扩展。 但使用css3和js实现进度条就很容易的避免了这方面的问题。 注:这篇文章里面使用jq…

    2025年12月23日
    000
  • CSS3+Js实现响应式导航条方法

    本文介绍css3+js实现响应式导航条方法 今天制作了一个响应式导航条,能够自动随着不同的屏幕分辨率或浏览器窗口大小的不同而改变导航条的样式,这里主要用到的就是CSS3的Media Query。具体可以查看浅谈响应式布局这篇文章,这里就不花费大量的篇幅介绍了,主要看一下这个导航条该怎么做。 另外需要…

    2025年12月23日
    000
  • 图解CSS3制作圆环形进度条的方法

    圆环形进度条制作的基本思想还是画出基本的弧线图形,然后css3中我们可以控制其旋转来串联基本图形,制造出部分消失的效果,下面就来带大家学习图解css3制作圆环形进度条的方法 首先,当有人说你能不能做一个圆形进度条效果出来时,如果是静态完整圆形进度条,那么就很简单了: .circleprogress{…

    2025年12月23日 好文分享
    000
  • css3多列及瀑布流效果示例代码

    这篇文章介绍css3多列及瀑布流效果示例代码 css3内容分块,多列效果(类似报纸版块排版): .p02{ /*count:内容分为几列,gap:内容与分割线的距离,rule:分割线样式*/ column-count:4; column-gap:30px; column-rule:5px outse…

    2025年12月23日
    000
  • 使用CSS3中calc()属性来以算式表达尺寸数值的说明

    本篇文章讲述使用css3中calc()属性来以算式表达尺寸数值的说明 calc()的用法十分巧妙,可以像我们在学校做数学应用题那样列式子来计算长度宽度等值,从而一定程度上实现自适应布局,下面我们就来介绍如何使用CSS3中的calc()属性来以算式表达尺寸数值 我们想要实现页面自适应布局时,通常因为m…

    好文分享 2025年12月23日
    000
  • 详解css3中matrix函数的使用方法

    下面小编就为大家带来一篇详解css3中matrix函数的使用方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧 scale(sx,sy)对应matrix(sx,0,0,sy,0,0)  拉伸 rotate(θ)对应matrix(cosθ,sinθ,-sinθ,cosθ…

    好文分享 2025年12月23日
    000
  • 移动端Web页面的CSS3 flex布局学习指南

    flexbox通常能让我们更好的操作他的子元素布局,这里稍微来提炼一下移动端web页面的css3 flex布局学习指南,需要的朋友可以参考下 1、开始使用flexbox布局的方法,代码如下: footer{ display:flex; } 立即学习“前端免费学习笔记(深入)”; 2、接下来为foot…

    好文分享 2025年12月23日
    000
  • CSS3中的box-flex弹性盒属性布局的示例介绍

    flex布局毫无疑问是当今web页面的最强大布局方式,box-flex弹性盒模型是其中的一个代表,这里我们就来以实例讲解css3中的box-flex弹性盒模型布局 box-flex是css3新添加的盒子模型属性,它的出现打破了我们经常使用的浮动布局,实现垂直等高、水平均分、按比例划分。但是它有一定的…

    2025年12月23日 好文分享
    000
  • 使用CSS3的图层阴影和文字阴影效果的详细介绍

    box-shadow图层阴影 box-shadow:阴影类型 X水平偏移(可取正负值) Y垂直偏移(可取正负值) 阴影大小 阴影扩展 阴影颜色值阴影类型可以省略,默认为外投影,当它的值为inset时,为内阴影效果。X水平偏移和Y垂直偏移可取正负值,当X为负值是投影在左边,为正时投影在右边。当Y为负值…

    2025年12月23日 好文分享
    000
  • 使用CSS3的ruby-position固定注音位置的用法示例介绍

    ruby-position能在样式上定制文字周围的注音位置,页面编码设置好以后可以用来制作各种语言之间的加注翻译效果,下面我们来看一下使用css3的ruby-position固定注音位置的用法示例: ruby-position 指定注意的位置时使用。 属性值1.before 注音文本会在基础文字上面…

    2025年12月23日 好文分享
    000
  • CSS3实现时间轴效果方法

    最近打开电脑就能看到极客学院什么新用户vip免费一个月,就进去看看咯,这里就不说它的课程怎么滴了,里面实战路径图页面看到了这个效果:  有点像时间轴的赶脚,而且每一块鼠标悬浮上去也有下拉效果展开介绍截图信息,就感觉效果还不错。但感觉这种效果貌似对于动态添加不是很灵活,因为高度不像宽度可以灵活的自适应…

    2025年12月23日
    000
  • CSS3实现可爱的小黄人动画示例代码

    每次看到css3动画就心痒痒想试一下,记得一个多月前看了白树哥哥的一篇博客,突然开窍,于是拿他提供的demo试了一下,感觉很棒!下图为demo提供的动画帧设计稿。 自己也想说搞一个DIY的动画出来,可是,会PS不一定会设计啊,我搞不出一套动画设计稿出来啊【抓狂】….于是乎,去了站酷网找找素材,我果然…

    2025年12月23日 好文分享
    000
  • CSS3制作缩略图的详细过程分析

    我们使用 border 属性来创建缩略图,具体内容如下 img { border: 1px solid #ddd; border-radius: 4px; padding: 5px; } 缩略图我们使用 border 属性来创建缩略图。@@##@@ 缩略图如何作为连接? a { display: i…

    2025年12月23日 好文分享
    000
  • CSS3实现iPhone滑动解锁功能代码示例

    该效果的主要实现思路是给文字添加渐变的背景,然后对背景进行裁剪,按文字裁剪(目前只有webkit内核浏览器支持该属性),最后给背景添加动画,即改变背景的位置,背景动画效果如下(gif录制时有卡顿,代码实现时不卡): 最终效果如下所示: 全部代码如下: p{ width:50%; margin:0 a…

    2025年12月23日
    000
  • css3动画效果总结分析

    css3的动画功能有以下三种: 1、transition(过度属性)2、animation(动画属性)3、transform(2D/3D转换属性) 下面逐一进行介绍我的理解: 1、transition: 如-webkit-transition:color 1s; 立即学习“前端免费学习笔记(深入)”…

    2025年12月23日
    000

发表回复

登录后才能评论
关注微信