挑战CSS难点:解决子元素继承父元素opacity属性的技巧

CSS中如何解决子元素继承父元素的opacity属性 解决方案 这里有两个方案,使用rgba()间接的设定opacity的值,这个属性不会向下继承,或者既然opacity会被子级元素继承,那就把opacity属性放到同级元素实现,下面通过示例具体说说这两种方式: 1.使用rgba()间接的设定opacity rgba()有四个参数,最后一个参数就是opacity的值,和opacity单独设定效果一样,但是这个是有background属性来控制的,background不会向下继承,所以就解决这个问题啦,示例如下: <!DOCTYPE html> &l 阅读详情
AI摘要

在CSS布局中,当父元素使用opacity属性时,其透明度会传递给子元素。文章介绍了两种避免这种继承的方法:1) 使用rgba背景色,但不适用于渐变背景;2) 通过添加额外的定位元素,独立设置背景透明度。示例代码展示了如何实现这一解决方案。

前言

在进行网页布局时,我们经常会使用 opacity 属性来调整元素的透明度,但是这个属性会被子元素继承,导致不必要的麻烦。那么该如何解决这个问题呢?本文将为你提供可行的解决方案。


css 中的 opacity 属性相信大家都不陌生,它是一个设置不透明度的属性,取值区间在 [0.0 - 1],代表从完全透明到完全不透明,默认值是 1,但是在使用 opacity 会有一个属性继承的问题,当父元素设置了 opacity 属性后,父元素下的所有子元素都会继承 opacity 属性。


解决方法:

方法1:background:rgba(0,0,0,0.5)

第一种方法很好理解,父元素在背景色上设置透明度时,直接使用 rgba 的格式即可;但若是父元素的背景色是渐变色时,这种方法就显得力不从心了,所以下面我们来看第二种方法。
方法1示例:

background: rgba(68, 102, 166, 0.6);

方法2:添加额外标签

上面我们说到子元素是会继承父元素的 opacity 属性,那我们直接不让它成为子元素,而是通过新增一个子元素的方式将其绝对定位定到父元素的位置,然后再在此元素上设置背景色与透明度就能将问题迎刃而解啦。

方法2示例:

<div class="outerBox">
  <!-- // 父级盒子 // -->
  <div class="fatherBox">
    <!-- // 内容盒子 // -->
    <div class="sonBox">我是内容</div>
  </div>
  <!-- // 要定位的盒子 // -->
  <div class="brotherBox"></div>
</div>

完整代码:

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>解决css中子元素继承父元素opacity属性的问题</title>
</head>

<body>
  <style>
    body {
      background: cornflowerblue;
    }

    /* 最外层盒子样式 */
    .outerBox {
      width: 300px;
      height: 300px;
      position: relative;
    }

    /* 父盒子样式 */
    .fatherBox {
      position: relative;
      z-index: 99;
    }

    /* 定位的盒子样式 */
    .brotherBox {
      background: linear-gradient(180deg, #ffffff 0%, #5582ff 30%, #2146ff 70%, #000831 100%);
      position: absolute;
      top: 0px;
      left: 0px;
      width: 100%;
      height: 100%;
      z-index: 1;
      opacity: .18;
    }

    /* 内容样式 */
    .sonBox {
      color: white;
    }
  </style>
  <!-- 最外层的盒子 -->
  <div class="outerBox">
    <!-- 父级盒子 -->
    <div class="fatherBox">
      <!-- 内容盒子 -->
      <div class="sonBox">我是内容</div>
    </div>
    <!-- 要定位的盒子 -->
    <div class="brotherBox"></div>
  </div>

</body>

</html>

实现效果:

在这里插入图片描述

前端必知必会-CSS不透明度opacity/transparency 本文介绍了的CSS不透明度opacity/transparency使用,如有问题欢迎私信和评论。 阅读详情

相关推荐

Isaac Gym环境安装和四足机器人模型的训练

该方法提出一种训练模式,该模式通过在单个GPU工作站上使用大规模并行的方法来实现现实世界机器人任务的快速控制策略的生成。

weixin_44061195的博客 3万+

设置css背景色不继承

CSS3中的opacity透明度属性的继承问题如何解决 利用CSS3的透明属性opacity可以为我们创建对象的渐隐渐显的动画效果,但是很多情况下这种单一的渐隐渐显效果并不能满足我们的日常开发需求。有时候,我们需要在设置opacity属性的对象里面增加其子集对象,以达到符合我们的要求。但是CSS3的opacity ( 比如:opacity:0.5; )透明度属性具有继承性,当对某个对象设置了opacity透明度属性的时候,其子集元素也会有透明度效果。 使用rgba的背景色可以很直接的设置对象的透明度效果,而

qq_45193707的博客 1477

基础的pdf病毒木马

基础的pdf病毒木马 环境: 攻击机:Kali 目标操作系统:Windows 10或Windows 7 (关闭防火墙和安全软件) 目标软件:Adobe Reader 8.1.2 msf框架搜索:adobe-pdf 1.打开msfconsole 2.搜索 adobe_pdf模块 3.加载攻击模块并设置payload 4.运行生成pdf 5.将pdf拖入到win10 6.打开msf,加...

小小猪的博客 4621

CSS中设置透明度的2个属性:opacity,RGBA以及它们的区别

透明度在网页设计中扮演着重要的角色,透明度的合理运用可以提升网页设计的美感和功能性,增强用户体验,突出重点内容,同时也为设计师提供了更多的创作空间和可能性。那我们一起来看看吧。

u013179804的博客 8214

TikTok Shop API密钥获取与PHP实战对接指南

本文详细介绍了TikTok Shop API密钥的获取流程与PHP实战对接方法。从开发者后台创建应用、获取核心的API密钥开始,逐步解析OAuth 2.0授权机制,并提供了完整的PHP封装类示例,涵盖签名生成、API调用、令牌刷新及错误处理,帮助开发者快速实现与TikTok Shop的数据对接与自动化操作。

weixin_29300241的博客 400

Augustus手动安装教程

本文记载了如何结合conda手动安装Augustus

m0_65437087的博客 1255

css:opacity: n;与rgba(red, green, blue, alpha); 子元素不继承opacity属性解决方法

css:opacity: n;与rgba(red, green, blue, alpha); 1.opacity 属性 设置div元素的不透明级别 2.rgba(red, green, blue, alpha); rgb函数使用r-red红色、g-green绿色、b-blue蓝色以及a-alpha透明度的rgba颜色模式来实现各种颜色,其中r、g、b取值范围为0~255,a的取值范围为0~1。 rgba颜色模式是rgb颜色模式的扩展,带有可指定颜色不...

qq_53233068的博客 1539

读书笔记:深度学习入门-基于python的理论与实现(俗称鱼书)

终于从头到尾把鱼书看完啦,真的是非常入门,非常查漏补缺,对新手很友好,对有一定基础的人也非常不错。看完不复习等于没看,所以今天开始复盘,顺便写这篇读书笔记。希望分享给没看过这本书或者看过这本书的同僚们参考,欢迎大家指教。我将从第三章神经网络开始复习,前两章内容书里已经非常基础and清楚了。(会持续更新滴).........

博客而已 1万+

CSS3中如何解决子元素继承父元素的opacity属性

问题 css3中的opacity属性是用来设置 div 元素的不透明级别的,但是我们往往会遇到因为父级元素设定opacity后,子元素也跟着透明了,但是有时候我们只是想让背景是透明的,这该如何解决呢? 错误的示例 我们常常想到的方法是直接给子元素的opacity设定为1,如下: &amp;amp;lt;!DOCTYPE html&amp;amp;gt; &amp;amp;lt;html&amp;amp;gt; &amp;amp;lt;head&am

AngelLover2017的博客 1万+

华为OD机试真题 新系统 2026-04-22 Python&JS 实现【小学生班长选举增强版】

9 月份开学第一天,小学某班级进行班长选举活动,班级共有 N 个学生,每个学生最多可投 3 票(对同一个人只能投一票),也可以弃权不投票,大家投票时写上对应学生的名字。 假设学生不存在重名。考虑到部分少数民族名字带分隔,且整体较长,同学在投票时为了方便,允许同学写全称,也可以只写其中的部分连续段。 例如班级里只有 2 个少数民族名称带点的同学:

MISAYAONE的博客 313

SAP_FI模块_固定资产期初导入全流程(含导入代码)

SAP 期初导入资产主数据以及金额相关的操作全流程记录,包含了批导程序的代码,以及错误记录

风沙的博客 1404

CSS3 opacity 属性

设置 div 元素的不透明级别 1、属性 opacity属性指定了一个元素的透明度。换言之,opacity属性指定了一个元素后面的背景的被覆盖程度。 当opacity属性的值应用于某个元素上时,是把这个元素(包括它的内容)当成一个整体看待,即使这个值没有被子元素继承。因此,一个元素和它包含的子元素都会具有和元素背景相同的透明度,哪怕这个元素和它的子元素有不同的opacity属性值。 2、语法 op...

qq_44158936的博客 1万+

Spring AI Alibaba实战训练营-05模型输出质量评估

本文介绍了使用Spring AI Alibaba库评估AI模型输出质量的方案。项目通过5种评估器实现自动化评估:相关性评估、事实准确性评估、答案相关性评分、答案正确性评估和忠实度评估。开发步骤包括环境准备(Java 17、Maven、API Key获取)、创建Maven项目、配置Spring AI(通过环境变量安全设置API Key)以及实现RAG流程。重点强调了通过评估器自动检测AI输出的质量指标,帮助开发者优化AI应用性能。

program哲学 215

CSS-opacity子元素继承父元素透明度的解决方法

在写项目页面的过程中,遇到子元素继承父元素透明度的问题,查找了好多文档给出的都是第一种方法,这种方法主要解决简单场景的,而对于设置复杂的background时,该方法不再适用。 分析原因: 父元素背景颜色设置透明度opacity:0.5,子元素会继承,给子元素设置opacity:1,子元素的透明度也是在父元素0.5的基础上设置的。 第一种方法: 父元素背景颜色设置透明度时,避免使用back...

u011435776的博客 4133

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

css opacity透明度继承解决方法

css中opacity透明度的继承问题解决(父元素使用opacity,子元素也变透明) 今天在项目中发现利用opacity改变透明度的话,会有继承问题,子元素也跟着透明了,那我们应该如何去解决这种情况呢?我用了两种方式: 一、父元素不用CSS3来设置透明度,而是设置rgba来设置透明度; <div class="box"> <div class=...

前端初学者常见问题 2315

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

CSS中如何解决子元素继承父元素的opacity属性?

解决方案 这里有两个方案,使用rgba()间接的设定opacity的值,这个属性不会向下继承,或者既然opacity会被子级元素继承,那就把opacity属性放到同级元素实现,下面通过示例具体说说这两种方式: 1.使用rgba()间接的设定opacity rgba()有四个参数,最后一个参数就是opacity的值,和opacity单独设定效果一样,但是这个是有background属性来控制的,background不会向下继承,所以就解决这个问题啦,示例如下: <!DOCTYPE html> &l

weixin_29947843的博客 965

opacity的继承

opacity的继承 纸上得来终觉浅,绝知此事要躬行 大家都知道在css3中增加的新属性opacity——不透明度的设定。 使用了opacity的元素,它的不透明度会被子元素继承。 但是opacity又不同于一般的具有继承的css属性, 如果父元素定义了opacity,那么子元素在定义一个opacity,那么子元素的效果其实是两者的乘积… 有时候我们不希望子元素的透明度改变。下面我们做几个实验...

古德的博客 2507

div子元素不继承父元素(opacity)的解决方法

给父元素设置了背景颜色加透明 background-color: #000; opacity: 0.5; -moz-opacity: 0.5; filter: alpha(opacity=50); 1 2 3 4 发现效果是子元素也继承了父元素的属性 字也变的透明,如果不希望这样,可以把上面的代码用下面的代码来代替 background: rgba(0,0,0,.3); 1 效果如下图 这样字体就...

duancsdn的博客 5133

关于子元素继承父元素透明度(opacity)的解决方法

今天在做移动端的时候遇到了子元素继承父元素的透明度(opacity)的情况,下面贴出解决方法: 问题重现: .opacity{background: #000;opacity:0.7} 这种写法就算给子元素opacity_child重新赋值opacity:1;他也同样会继承父元素opacity的值。 正确写法: .opacity{background: rgba(0,0,0,.7);}

JasonMa2010的专栏 1万+

css:opacity影响子元素透明度

问题:为父元素设置opacity做透明效果时。子元素会继承这个属性导致子属性也有透明效果。 <body> <div class="parent"> <div class="child"></div> </div> </body> <style> .parent{ ...

九日的博客 890

关于父元素设置opacity后,子元素设置opacity无效问题

问题来源: 最近做一个项目,由于外层p元素字体是半透明的,而内部span元素的字体要求不透明,于是在父元素设置了opacity:0.7,子元素设置opacity:1.0,代码如下。 .detail-top .detail-explain { justify-content: space-between; margin-top: 50px; padding-right: 5%; opacity: 0.7; } .detail-top .detail-explain span { display

sglhp的博客 2699

关于父元素的opacity属性影响子元素opacity属性的显示问题

这里主要解决的是子元素不需要透明度但是父元素需要透明度,但是子元素继承了父元素的透明度导致的子元素透明度失效的问题。

I am the light coursing in the soul of the moon. 1038

关于opacity属性的探究

关于opacity属性的探究 上问题!! 在前一段时间我朋友和我讨论到了opcaity的属性问题问题如下: 代码如下清重点关注opcaity <!-- css样式 --> <style> .boxfather { width: 500px; height: 500px; background-color: blue; text-align: cen

baidu_39068138的博客 1565

html子元素不继承父元素(opacity)的解决方法

给父元素设置了背景颜色加透明background-color: #000; opacity: 0.5; -moz-opacity: 0.5; filter: alpha(opacity=50);发现效果是子元素也继承了父元素的属性 字也变的透明,如果不希望这样,可以把上面的代码用下面的代码来代替background: rgba(0,0,0,.3); 效果如下图 这样字体就不会继承父元素的属性变的

Poker Man 2万+
上一篇: 解决vue中报错 “TypeError: Cannot read properties of null (reading ‘forEach‘)“
下一篇: 让图片上传变得更简单:vue和vant的完美融合
水星记_
水星记_ 优质创作者: 编程框架技术领域 优质创作者: 编程框架技术领域
博客等级 码龄6年 13万+粉丝 212原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

水星记_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值