当前位置: 代码迷 >> 综合 >> css:opacity: n;与rgba(red, green, blue, alpha); 子元素不继承opacity属性解决方法
  详细解决方案

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

热度:31   发布时间:2023-11-26 19:19:13.0

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颜色模式的扩展,带有可指定颜色不透明度的alpha。

        而opacity在使用上应用于使用该属性的盒子内部的前景色、后景色、图片等,往往造成误伤,很多时候我们需要背景色透明度,而使用opacity则会导致文字颜色跟随改变。

        并且opacity具有inherit,继承性,我们在给父级元素设置opacity后,会导致子元素的文字、背景色等造成透明度的改变,这并不是我们想要的。

        这时候rgba颜色模式给了我们在这种应用情景下更好的选择,rgba颜色模式可以在任何颜色属性值当中使用,拿背景色来说,如图:

 mask层使用background-color:rgba;

         这个时候如果我们使用opacity属性来给mask遮罩层,也就是当鼠标放在图片上会向上移动遮挡住图片的这个div,需求是背景色具有透明度,使得图片仍然可见,opacity可以实现该需求,但是会使得文字颜色,也就是color属性也跟着具有opacity属性,会使得文字跟着半透明化。

        但是我们如果使用rgba颜色模式,对hover后mask层的background进行透明度设置,就不会使得文字具有透明度,因为设置得是单独的mask层背景色透明度。

        设置时只需要知道mask层的背景色的r、g、b三个色值,在给a设置一个透明度即可吗,如果使用的关键字颜色模式、六位十六进制颜色模式或者hsl颜色模式,只需要用取色器取色即可(*photoshop*)。

  相关解决方案