CSS3 rgba
复制粘贴:
<!DOCTYPE html > <html > <head> <meta charset="utf-8"> <title>标题</title> <script type="text/javascript" src="../js/jquery-1.4.min.js"></script>
<style type="text/css">
textarea{display: block; width:500px;height:500px; margin:100px auto; }
ul{list-style: none;}
li.opacity {float: left; width: 50px; height: 50px; }
li.opacity1{background: rgb(255,255,0); opacity: 1 ; filter:alpha(opacity=100); }
li.opacity2{background: rgb(255,255,0); opacity: 0.8; filter:alpha(opacity=80); }
li.opacity3{background: rgb(255,255,0); opacity: 0.6; filter:alpha(opacity=60); }
li.opacity4{background: rgb(255,255,0); opacity: 0.4; filter:alpha(opacity=40); }
li.opacity5{background: rgb(255,255,0); opacity: 0.2; filter:alpha(opacity=20); }
li.opacity6{background: rgb(255,255,0); opacity: 0 ; filter:alpha(opacity=0); }
li.rgba {float: left; width: 50px; height: 50px; }
li.rgba1 {background: rgba(255,255,0,1); }
li.rgba2 {background: rgba(255,255,0,0.8); }
li.rgba3 {background: rgba(255,255,0,0.6); }
li.rgba4 {background: rgba(255,255,0,0.4); }
li.rgba5 {background: rgba(255,255,0,0.2); }
li.rgba6 {background: rgba(255,255,0,0); }
p {padding: 5px 10px; color: white; }
/*问题的传在*/
.bg-box {top: 200px; width: 200px; height: 100px; border: 1px solid #ccc; background: red; position: relative; }
.bg {background: black; opacity: 0.5; filter:alpha(opacity=50); width: 100%; height: 70px; position: absolute; bottom: 0; left: 0; }
/*问题的解决1:
在html中把bg这个div分离出来了,让他和bg-content这个div变成兄弟关系,然后通过CSS把他们都定位在同一位置,只是bg放在了bg-content的下面(z-index)控制,另外在bg的div上应用了透明
*/
.bg-box2 {top: 200px; width: 200px; height: 100px; border: 1px solid #ccc; background: red; position: relative; }
.bg2 {background: black; opacity: 0.5; filter:alpha(opacity=50); width: 100%; height: 50px; position: absolute; bottom: 0; left: 0; z-index: 1; }
.bg-content2 {width: 100%; height: 70px; position: absolute; bottom: 0; left: 0; z-index: 10; }
/*问题的解决2:
只要在bg-content中应用一个background:rgba();就能有上面那种效果了
*/
.bg-box3 {top: 200px; width: 200px; height: 100px; border: 1px solid #ccc; background: red; position: relative; }
.bg-content3 {width: 100%; height: 70px; position: absolute; bottom: 0; left: 0; background: rgb(0,0,0); background: rgba(0, 0, 0,0.5);
/*下面是ie兼容*/
-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 */
}
</style><script type="text/javascript">
</script>
</head> <body>
<div class="example-opacity">
<p>Opacity效果</p>
<ul>
<li class="opacity opacity1">100%</li>
<li class="opacity opacity2">80%</li>
<li class="opacity opacity3">60%</li>
<li class="opacity opacity4">40%</li>
<li class="opacity opacity5">20%</li>
<li class="opacity opacity6">0</li>
</ul>
<p>CSS3的RGBA效果</p>
<ul>
<li class="rgba rgba1">1</li>
<li class="rgba rgba2">0.8</li>
<li class="rgba rgba3">0.6</li>
<li class="rgba rgba4">0.4</li>
<li class="rgba rgba5">0.2</li>
<li class="rgba rgba6">0</li>
</ul>
</div>
<div class="bg-box">
<div class="bg">
<div class="bg-content">
<p>我是bg的后代元素,我不想我的前景有任何透明!怎么办?</p>
</div>
</div>
</div>
<div class="bg-box2">
<div class="bg2"></div>
<div class="bg-content2">
<p>我解决了前景有透明!</p>
</div>
</div>
<div class="bg-box3">
<div class="bg-content3">
<p>我是用rgba()解决了前景有透明</p>
</div>
</div>
<textarea style="">
效果中我们可以看出,他们相同之处就是背景色完全是一样的,但区别就是一直让大家觉得头痛的问题,那就是opacity后代元素会随着一起具有透明性,所以我们Opacity中的字随着透明值下降越来越看不清楚,而RGBA不具有这样的问题,但是其支持的浏览器中有一个占在大市场份额的IE不支持,这也就是让我们需要去做兼容,(听到兼容二字大家是不是特烦,我也是的)希望IE早点能实现。
那为什么不使用opacity而要使用rgba呢????
在RGBA还没有出世前,我们都是使用opacity来做透明,但这里存在一个问题,就是我们在父元素中使用了opacity,那么其垢代元素都会受其影响,我想这个问题大家都有碰到过,为了解决这样的问题我们需要增加一个空的div来专门放置使用透明的背景,然后通过使用绝对定位来实现我们需要的结果。为了更好的理解我们在这里来看一个使用opacity的实例
综合上面的所述,我们规纳一个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 */
}
</textarea>
</body>
</html>
CSS3 rgba的更多相关文章
- CSS3 RGBA等于RGB加上opacity吗?
在我们前端设计里有两篇教程: CSS3 RGBA colors使用说明 css3中opacity属性学习与实践,他们公别介绍了RGBA,RGB,opacity的用法,这里我们把这三个属性放在一起来考虑 ...
- 制作透明色:《CSS3 RGBA》与Opacity样式用法
前面我们一起探讨了一下CSS3 Gradient(css3 渐变),今天我们一起来探讨一下CSS3中的RGBA.RGB对于大家来说一点不陌生,他就是红色R+绿色G+蓝色B,那现在我们所说的RGBA又是 ...
- CSS3 RGBA 属性高级用法
这个属性的兼容问题比较简单,IE8已经支持这个属性,IE6和IE7也可以通过hack支持.RGBA和CSS2里的RBG属性差不多,只是RGBA属性多了一个透明度的定义,CSS3标准里对RGBA属性的解 ...
- CSS-3 RGBA的使用
由于IE-8及以下都不支持 RGBA(),所以往往大家都不用这个属性,而是用图层叠加的方式去实现我们想要的效果.因为 opacity 这个属性是会影响到子孙元素的. 例如: <div class ...
- css3 RGBA 红色R+绿色G+蓝色B+Alpha通道
语法: R:红色值.正整数 | 百分数 G:绿色值.正整数 | 百分数 B:蓝色值.正整数| 百分数 A:透明度.取值0~1之间 取值: <length>:Hue(色调).0(或360)表 ...
- CSS3制作动画的三个属性
CSS3属性中有关于制作动画的三个属性:Transform,Transition,Animation:我们一起学习完了Transform和Transition,让我们对元素实现了一些基本的动画效果,这 ...
- 用Less CSS定义常用的CSS3效果函数
定义圆角及调用 /* 定义圆角 @radius 圆角大小 */ .round(@radius:5px){ border-radius:@radius; -webkit-border-radius: @ ...
- 熟悉css/css3颜色属性
颜色属性无处不在.字体要用颜色,背景可以有颜色,粒子特效更是离不开颜色.本文参考了一些资料简单总结下以备日后查阅. css中颜色的定义方式: 十六进制色 RGB & RGBA HSL & ...
- 使用 CSS3 打造一组质感细腻丝滑的按钮
CSS3 引入了众多供功能强大的新特性,让设计和开发人员能够轻松的创作出各种精美的界面效果.下面这些发出闪亮光泽的按钮,很漂亮吧?把鼠标悬停在按钮上,还有动感的光泽移动效果. 温馨提示:为保证最佳的效 ...
随机推荐
- asp.net获取站点根目录下子目录的名称
使用Visual Studio建立一个.aspx文件(Web Forms),例如hovertree.aspx,在页面上加入一个ListBox代码如下: <asp:ListBox runat=&q ...
- mysql: see all open connections to a given database?
SHOW PROCESSLIST or show status where `variable_name` = 'Threads_connected';
- [转]CSS编码规范
单行形式书写风格的排版约束 1. 每一条规则的大括号 { 前后加空格 2. 多个selector共用一个样式集,则多个selector必须写成多行形式 3. 每一条规则结 ...
- oracle的基本数据类型(转载)
数据类型是在设计表结构中需要定义的,选择适当的数据类型可以节省存储空间,提高运算效率. Oracle数据类型主要包括 1.字符型 适合保存字符串类型的数据,如姓名.地址.简介等等. 如:char(20 ...
- Scalaz(20)-Monad: Validation-Applicative版本的Either
scalaz还提供了个type class叫Validation.乍看起来跟\/没什么分别.实际上这个Validation是在\/的基础上增加了Applicative功能,就是实现了ap函数.通过Ap ...
- [小北De编程手记] : Lesson 04 玩转 xUnit.Net 之 Fixture(下)
上一篇文章<[小北De编程手记] : Lesson 03 玩转 xUnit.Net 之 Fixture(上)>向大家介绍了xUnit.Net 共享数据的方式.Test Case的构造函数 ...
- Selenium学习笔记之外部化相关测试数据---xml
我们也可以用xml来定义一个信息更为丰富的UIMap.xml文件,比如,额外还添加控件所属的页,控件的类型,然后解析构建一个XMLParser类来读取相应的值. <?xml version=&q ...
- Java继承的初始化
/** * Created by xfyou on 2016/11/2. * Java继承的初始化 */ public class Beetle extends Insect { int k = pr ...
- GJM : Protobuf -NET 相比Json 传输速度只需要1/3 解析只需要1/10
在序列化速度的跑分中,Protobuf一骑绝尘,序列化速度快,性能强,体积小,所以打算了解下这个利器 1:安装篇 谷歌官方没有提供.net的实现,所以在nuget上找了一个移植的 Nuget里搜索Pr ...
- atom编辑markdown之上传图片
01atom编辑markdown之上传图片 :first-child { margin-top: 0px; } .markdown-preview:not([data-use-github-style ...