首页IT科技烟花png透明素材(背景透明(opacity vs background))

烟花png透明素材(背景透明(opacity vs background))

时间2025-09-17 12:09:32分类IT科技浏览5438
导读:最近在做项目的时候,遇到透明度的相关设置。...

最近在做项目的时候               ,遇到透明度的相关设置               。

常用的背景透明设置可分为两种                        ,分别是:

一是给background设置透明度                        。 二是利用opacity属性        。

在跳了一些坑之后        ,本人更推荐给background设置透明度           ,为什么呢?

想一下                        ,我们为什么会想要实现透明效果呢?

​ 大多情况都是父盒子设置了一个很美的或很酷的背景图片            ,而子盒子则想要实现一定的透明效果       ,从而营造一种很高尚的效果           。类似于下面这种效果(图片是随便从网上找的                       ,图片来源)                        。

为什么我推荐给background设置透明度                ,而不是使用opacity属性呢?

​ 因为background的透明度效果只应用于背景    ,而opacity属性却会影响子盒子内所有内容                       ,最重要的是文字和图片颜色也会受到影响                    ,这就很让人头大            。

​ 如下图,项目中父盒子设置了一个很酷的背景图片                   ,子盒子设置了透明效果       。UI小哥哥给的设计里面用到了opacity属性                        ,代码如下:

 在我设计整体架构的时候    ,并没有意识到什么不对               ,但是具体内容一放上去                        ,就察觉到不对了                       。看下面的文字和图片        ,本来文字设置的颜色是白色           ,但是实际却有一种偏灰的效果;图片也有蒙了一层灰的效果                        ,暗沉暗沉的                。

查了很多资料            ,看到有些说用定位之类的解决       ,感觉很麻烦                       ,没有找到适合的解决方法                ,只能先放弃了这个属性    ,愁~

​ 这里没办法用background解决                       ,因为前面已经使用了这个属性                    ,也设置了相应的透明度    。

后续码代码的时候,突然灵光一现                   ,把opacity设置的透明度与background透明度相乘                        ,作为background新的透明度    ,就好了呀!!!

代码如下:

 效果就很好:

所以               ,为了不让子盒子的内容(文字               、图片等)失去原本设计的颜色                        ,尽量不要使用opacity属性                       。

至于具体具体透明度的设置:

​ rgba()中a代表透明度        ,和opacity属性一样           ,取值 0-1 之间                        ,表示从 完全透明完全不透明                     。

至于给背景和边框设置的linear-gradient线性渐变            ,后续会整理一篇博客。

若是想给背景设置一个图标       ,连带着一起设置透明度                       ,这样的话要怎么做呢?这样其实也有两种实现方式:

直接给目标模块设置opacity属性                , 给目标模块的背景设置透明属性    ,同时创建一个跟目标模块大小一样的模块                       ,绝对浮动起来                    ,然后opacity设置对应的透明度                   。将这个模块遮盖在目标模块上面,并设置z-index: -1;                        。

分别实现的效果如下:

总体来说                   ,感觉没有什么区别                        ,但是仔细看字体    ,“主要内容区1               ”字体受到透明度影响了               ,但“主要内容区2                        ”没有                        ,字体一多        ,对比就很明显了:

 这样就看出来了           ,所以推荐第2种方式                        ,这样调节图片透明度的时候            ,不会影响到字体颜色       ,或是                       ,我在内容区域增加图片    。

 这样是不是更明显了               。对于为啥要设置z-index: -1;                ,是因为浮动的层级比文档流要高    ,如果不降低它的层级                       ,会使得logo盖住具体内容                    ,如下:

 当然,如果你想要这种样式                   ,就可以不设置z-index                        。

 代码如下:

<div class="main1"> 主要内容区1 </div> <div class="main2"> <div class="main2-bg"></div> 主要内容区2 </div> <style> .main1, .main2, .main2-bg { width: 500px; height: 200px; } .main1 { background: rgba(255, 255, 255, 1) url(../assets/imags/background.jpg) center center no-repeat; opacity: 0.3; } .main2 { background: rgba(255, 255, 255, 0.3); position: relative; } .main2-bg { position:absolute; z-index: -1; background: rgba(255, 255, 255, 1) url(../assets/imags/background.jpg) center center no-repeat; opacity: 0.3; } </style>

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
uniapp扫码黑屏(记录–uni-app App端半屏连续扫码) string源代码(Java常用类之String源码分析)