rgba 和 opacity 的对比.

rgba 中 的 a  指的是透明度:

1. rgba 的 设置的 透明度 不会被子级 元素继承;    opacity 设置的透明度会被子级元素继承 .

  因此 ,有时候 使用 rgba 会比 opacity 效果更好;

2. rgba 可以设置background-color ,  color , border-color , text-shadow , box-shadow,

------------------------------

实例:  在一个背景 上 ,设置 一个子背景 ,这个子背景 透明, 同时 子 背景中的内容不透明 .

1)使用 opacity .

 1 <!DOCTYPE html>
 2 <html lang="zh-CN">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>opaciyt</title>
 6
 7     <style type="text/css">
 8          .bg-box {
 9            width: 200px;
10            height: 200px;
11            border: 1px solid #ccc;
12            background: red;
13            position: relative;
14          }
15          .bg {
16            background: black;
17            opacity: 0.5;
18            filter:alpha(opacity=50);
19            width: 100%;
20            height: 100px;
21            position: absolute;
22            bottom: 0;
23            left: 0;
24            z-index: 1;
25           }
26           .bg-content {
27             width: 100%;
28             height: 100px;
29             position: absolute;
30             bottom: 0;
31             left: 0;
32             z-index: 10;
33           }
34           .bg-content p {
35              padding: 5px 10px;
36              color: white;
37              font-size: 16px;
38           }
39
40
41     </style>
42 </head>
43 <body>
44     <div class="bg-box">
45       <div class="bg">  </div>
46        <div class="bg-content">
47           <p>我是bg的后代元素,我不想我的前景有任何透明!怎么办?</p>
48         </div>
49     </div>
50
51
52 </body>
53 </html>

这里 是个 bg-content 的 兄弟 节点  bg 加上 透明度 .

同时绝对定位 ,使得  bg  和  bg-content 重合 ;

同时  bg 的 z-index   要 小于 bg-content 的 z-index ,  使得 bg 在 bg-content 下面.

-----------

如果 不是上面的那样 ,而是 给 bg-content 的父级 加上透明度 , 那么 bg-content 就会继承透明度,   bg-content中的内容 也会继承透明度. 这样就不是我们想要达到的效果了.

 1 <!DOCTYPE html>
 2 <html lang="zh-CN">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>opaciyt-2</title>
 6
 7     <style type="text/css">
 8
 9           .bg-box {
10             width: 200px;
11             height: 200px;
12             border: 1px solid #ccc;
13             background: red;
14             position: relative;
15           }
16          .bg {
17             background: black;
18             opacity: 0.5;
19             filter:alpha(opacity=50);
20             width: 100%;
21             height: 100px;
22             position: absolute;
23             bottom: 0;
24             left: 0;
25           }
26
27           .bg p {
28             padding: 5px 10px;
29             color: white;
30             font-size: 16px;
31           }
32
33
34     </style>
35 </head>
36 <body>
37     <div class="bg-box">
38       <div class="bg">
39
40            <div class="bg-content">
41           <p>我是bg的后代元素,我不想我的前景有任何透明!怎么办?</p>
42         </div>
43
44       </div>
45     </div>
46
47
48 </body>
49 </html>

----------------

2) 使用 rgba  .  rgba 定义的透明度不会被继承;

 1 <!DOCTYPE html>
 2 <html lang="zh-CN">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>rgba</title>
 6
 7     <style type="text/css">
 8
 9           .bg-box {
10              width: 200px;
11              height: 200px;
12              border: 1px solid #ccc;
13              background: red;
14              position: relative;
15           }
16           .bg-content {
17              width: 100%;
18              height: 100px;
19              position: absolute;
20              bottom: 0;
21              left: 0;
22              background: rgba(0, 0, 0,0.5);
23           }
24           .bg-content p{
25              padding: 5px 10px;
26              color: white;
27              font-size: 16px;
28           }
29
30
31     </style>
32 </head>
33 <body>
34
35     <div class="bg-box">
36        <div class="bg-content">
37           <p>我是bg的后代元素,我不想我的前景有任何透明!怎么办?</p>
38         </div>
39     </div>
40
41 </body>
42 </html>

-------------------------------------------------

定义的 一个兼容 的 rgba 类:

.rgba {
  background: rgb(0,0,0); /*The Fallback color,这里也可以使用一张图片来代替*/
  background: rgba(0, 0, 0,0.5);
  -ms-filter: "progid:DXImageTransform.Microsoft.gradient(GradientType=1,startColorstr=#80000000,endColorstr=#80000000)"; /*Filter for IE8 */
  filter: progid:DXImageTransform.Microsoft.gradient(GradientType=1,startColorstr=#80000000, endColorstr=#80000000); /*Filter for older IEs */
 }

css背景颜色属性值转换

参考链接:

  CSS3 RGBA  

  RGBA与Opacity区别小解

时间: 2024-11-01 04:32:06

rgba 和 opacity 的对比.的相关文章

RGBA 与opacity

RGBA是一种表示颜色的方式,初次看到觉得很奇怪,与RGB的区别是什么?后面查了下,才发现RGBA的好处. RGBA各个字母的含义为: R:红色值,正整数 | 百分数: G:绿色值,正整数 | 百分数: B:蓝色值,正整数| 百分数 : A:透明度,取值0~1之间. 看到A的含义,立马想起了opacity--. 关于RGBA和opacity的区别,只有两点: opacity后代元素会随着一起具有透明性(会继承),RGBA不会继承: RGBA会有兼容性的问题,opacity没有.

rgba()和opacity的使用

rgba()表示 红 绿 蓝 alpha ,W3C指在原有的rgb颜色模型之后增加了 “alpha”参数,“可以让制定的颜色透明化”(rgb()上扩展的,其只可以设置颜色,而不能使设置的颜色透明化) 例子:rgba(55,146,179,.5) ;   //rgb值为“55,146,179”,.5使设定的rgb值为50%透明,1为完全不透明,0为完全透明 opacity属性是css3的属性,也可以实现透明效果 例子:opacity:.65;    //1为完全不透明,0为完全透明 rgba()和

audio标签、HOVER效果、rgba和opacity、隐藏场景

HTML5的audio定义音频流 HTML5里引入的新标记 <audio> 和 <video> 实现了HTML对视频播放和音频播放的原生支持,有了这种原生的HTML5视频播放器/音频播放器,我们不再需要flash技术,而直接能将视频/音频嵌入到了网页中. <audio> 和 <video> 两个标记上控制属性的含义: controls : 显示标准的 HTML5 视频/音频播放器控制条.控制按钮. autoplay : 让文件自动播放. loop : 让文件

rgba和opacity区别

首先来看rgba: R:红色值.正整数 | 百分数G:绿色值.正整数 | 百分数B:蓝色值.正整数 | 百分数A:Alpha透明度.取值0~1之间. 再看opacity: 后面的取值为从 0.0 (完全透明)到 1.0(完全不透明). 两者的区别:opacity会继承父元素的 opacity 属性,而RGBA设置的元素的后代元素不会继承不透明属性.

css中使用rgba和opacity设置透明度的区别

1.使用rgba设置背景色的透明 效果如下: <body> <div id="box"> 你好啊! </div> </body> body { background-color:red; } #box{ width:200px; height:200px; margin:100px auto; text-align:center; line-height:200px; color:white; background-color:rgba(

【技术】RGBA和opacity的区别

opacity (filter: Alpha(Opacity=50) 或opacity:0.5)会使整个元素包括子元素透明,而RGBA仅仅是元素本身透明,子元素不透明. eg:.div {background: rgba(0,0,0,0.5);} IE下RGBA写法: .div { filter:progid:dximagetransform.microsoft.gradient (startcolorstr="#66000000", endcolorstr="#660000

透明度 rgba 和 opacity 的区别

rgba: 使用方式:rgba(255, 255, 255, .5) 最后一个参数表示透明度取值范围 0 ~1    只作用于元素的颜色或其背景色. opacity :  使用方式:opacity : .5 ;  参数表示透明度取值范围 0 ~1 作用于元素及元素内的所有内容.(即可以被其子元素继承) 原文地址:https://www.cnblogs.com/serdy/p/10252125.html

CSS3 rgba用法

CSS 中的颜色有三种定义方式:使用颜色方法(RGB.RGBA.HSL.HSLA),十六进制颜色值和预定义的颜色名称. RGBA 是代表Red(红色) Green(绿色) Blue(蓝色)和 Alpha(不透明度)三个单词的缩写.RGBA 颜色值是 RGB 颜色值的扩展,带有一个 alpha 通道 - 它规定了对象的不透明度. 基本语法: R:红色值.正整数 (0~255) G:绿色值.正整数 (0~255) B:蓝色值.正整数(0~255) A:透明度.取值0~1之间 浏览器的兼容性: RGB

CSS3 RGBA

前面我们一起探讨了一下CSS3 Gradient(css3 渐变),今天我们一起来探讨一下CSS3中的RGBA.RGB对于大家来说一点不陌生,他就是红色R+绿色G+蓝色B,那现在我们所说的RGBA又是什么呢?说得简单一点就是在RGB的基础上加进了一个通道Alpha.从而形成了我们今天需要讨论的RGBA.如果需要更详细的解说,大家就跟着我一起往下看吧. 语法: R:红色值.正整数 | 百分数 G:绿色值.正整数 | 百分数 B:蓝色值.正整数| 百分数 A:透明度.取值0~1之间 取值: <len