详解CSS3的opacity属性设置透明效果的用法


Posted in HTML / CSS onMay 09, 2016

CSS3 opacity 属性的功能是用来控制网页元素的透明效果(调整不透明度),早期网页设计常常会用到许多的透明效果,通常都是透过 png 图层来制作透明的感觉,现在网页设计师可以使用 CSS3 opacity 属性来轻松的达到网页元素不透明度的调整,CSS3 opacity 属性的语法非常简单,只需要透过数字的调整,就能呈现出不同的不透明度,进而设计出相当具有现代感的网页风格,可应用在网页图片、DIV 区块、span 区域、Table 表格 ... 等元素,所有新版的主流浏览器都支援 CSS3 opacity 属性的效果。

CSS3 opacity 属性基本语法
opacity: 不透明度;
CSS3 opacity 属性参数的"不透明度"是以数字表示,从 0.0 至 1.0 都可以,完全透明是 0.0,完全不透明是 1.0,换句话说,数字越大代表元素越不透明。参数除了可以使用"不透明度"之外,还有 inherit 继承父层属性,不过浏览器支援度较差,不建议使用。

CSS3 opacity 属性实际范例

CSS Code复制内容到剪贴板
  1. <div style="padding:10px;background-color:green;opacity:0.1;">   
  2. 测试 CSS3 opacity 属性的不透明度处理   
  3. </div>   
  4. <div style="padding:10px;background-color:green;opacity:0.5;">   
  5. 测试 CSS3 opacity 属性的不透明度处理   
  6. </div>   
  7. <div style="padding:10px;background-color:green;opacity:0.8;">   
  8. 测试 CSS3 opacity 属性的不透明度处理   
  9. </div>  

范例的输出效果
详解CSS3的opacity属性设置透明效果的用法

范例共准备了三个加入 opacity 效果的 DIV 区块,各位可以注意到从最上面开始的第一个区块,不透明度为 0.1(opacity:0.1)所以整个区块变成几乎快看不到颜色与文字,第二个区块不透明度设为 0.5(opacity:0.5),所以比第一个区块清楚多了,第三个区块再度降低不透明度到 0.8,文字与背景颜色都越更加明显,这就是 CSS3 opacity 属性的实际效果,由范例可以很清楚的看到,一个 DIV 区块内的文字内容与背景颜色(background-color)都会受到 opacity 属性的不透明度影响。

补充:目前新版的主流浏览器均有支援 CSS3 opacity 属性,但需要注意的是 IE8 以即更早版本的 IE 浏览器必须使用替代语法来实做,所谓的替代语法是利用 filter 属性,写法如「filter:Alpha(opacity=50);」,效果等于「opacity:0.5」。

opacity透明度属性的继承问题
CSS3的opacity透明度属性具有继承性,当对某个对象设置了opacity透明度属性的时候,其子集元素也会有透明度效果;

XML/HTML Code复制内容到剪贴板
  1. <div class="main">  
  2.   <div class="div1">  
  3.     <p>背景色为rgb的opacity效果</p>  
  4.   </div>  
  5.   <div class="div2">  
  6.     <p>背景色为rgba的透明效果</p>  
  7.   </div>  
  8. </div>  

CSS:

CSS Code复制内容到剪贴板
  1. .main{   
  2.   clear:rightright;   
  3.   margin:20% auto;   
  4.   overflow:hidden;   
  5.   width:335px;   
  6. }   
  7. .main div{   
  8.   color:red;   
  9.   float:left;   
  10.   display:inline-block;   
  11.   width:160px;   
  12.   height:160px;   
  13.   text-align:center;   
  14. }   
  15. /*使用opacity透明属性的显示效果*/  
  16. .div1{background-color:rgb(0,0,0);   
  17.   opacity:0.5;   
  18.   filter:alpha(opacity=50);   
  19.   -ms-filter:'progid:DXImageTransform.Microsoft.Alpha(opacity=50)';margin-right:15px;   
  20. }   
  21. .div1 p{   
  22.   position:relative;   
  23. }   
  24. /*使用rgba色显示的效果*/  
  25. .div2{   
  26.   background:rgba(0,0,0,.5)   
  27. }  

总结: 使用rgba的背景色可以很直接的设置对象的透明度效果,而且对其子集元素没有继承性;而使用rgb色并设置opacity透明度属性的对象却产生了透明度继承。

不过,可能你把整个代码都copy下来并在IE9以下的浏览器都测试的话,你会发现在IE7、IE8浏览器中出现了设置opacity透明度属性的对象中子集元素并没有继承父集元素的透明度效果,并且设置了背景色为rgba的对象反而没有任何效果。这是因为: 在设置了opacity透明度属性的对象中的子集元素设置了position:relative属性,这才使得它在IE9以下的浏览器中得到了解决;其次在IE9以下的浏览器并不兼容rgba色,所以,你会看到第二种的背景色没有效果。

HTML / CSS 相关文章推荐
CSS3教程(1):什么是CSS3
Apr 02 HTML / CSS
CSS3 透明色 RGBA使用介绍
Aug 06 HTML / CSS
CSS3使用transition实现的鼠标悬停淡入淡出
Jan 09 HTML / CSS
HTML5+CSS3网页加载进度条的实现,下载进度条的代码实例
Dec 30 HTML / CSS
CSS3中新增的对文本和字体的设置
Feb 03 HTML / CSS
HTML5文档结构标签
Apr 21 HTML / CSS
程序设计HTML5 Canvas API
Apr 08 HTML / CSS
利用HTML5画出一个坦克的形状具体实现代码
Jun 20 HTML / CSS
实例教程 HTML5 Canvas 超炫酷烟花绽放动画实现代码
Nov 05 HTML / CSS
Html5之自定义属性(data-,dataset)
Nov 19 HTML / CSS
HTML实现代码雨源码及效果示例
Feb 25 HTML / CSS
CSS实现切角+边框+投影+内容背景色渐变效果
Nov 01 HTML / CSS
CSS3中使用RGBa来调节透明度的教程
May 09 #HTML / CSS
使用CSS3编写灰阶滤镜来制作黑白照片效果的方法
May 09 #HTML / CSS
CSS超出文本指定宽度用省略号代替和文本不换行
May 05 #HTML / CSS
CSS3实现曲线阴影和翘边阴影
May 03 #HTML / CSS
CSS3让登陆面板3D旋转起来
May 03 #HTML / CSS
关于css兼容性问题及一些常见问题汇总
May 03 #HTML / CSS
CSS3 3D旋转rotate效果实例介绍
May 03 #HTML / CSS
You might like
虹吸式咖啡探讨–研磨
2021/03/03 冲泡冲煮
解决phpmyadmin中文乱码问题。。。
2007/01/18 PHP
无法在发生错误时创建会话,请检查 PHP 或网站服务器日志,并正确配置 PHP 安装(win+linux)
2012/05/05 PHP
php数组中删除元素的实现代码
2012/06/22 PHP
php读取目录及子目录下所有文件名的方法
2014/10/20 PHP
Linux系统下PHP-FPM的安装和配置教程
2015/08/17 PHP
详解PHP使用日期时间处理器Carbon人性化显示时间
2017/08/10 PHP
PHP基于DateTime类解决Unix时间戳与日期互转问题【针对1970年前及2038年后时间戳】
2018/06/13 PHP
JavaScript实际应用:innerHTMl和确认提示的使用
2006/06/22 Javascript
简单的无缝滚动程序-仅几行代码
2007/05/08 Javascript
jQuery生成asp.net服务器控件的代码
2010/02/04 Javascript
2则自己编写的jQuery特效分享
2015/02/26 Javascript
jquery获取当前元素索引值用法实例
2015/06/10 Javascript
JavaScript实现获取某个元素相邻兄弟节点的prev与next方法
2016/01/25 Javascript
如何消除inline-block属性带来的标签间间隙
2016/03/31 Javascript
jQuery实现ajax的叠加和停止(终止ajax请求)
2016/08/08 Javascript
Angularjs 设置全局变量的方法总结
2016/10/20 Javascript
原生js实现图片放大缩小计时器效果
2017/01/20 Javascript
angularJS 指令封装回到顶部示例详解
2017/01/22 Javascript
干货!教大家如何选择Vue和React
2017/03/13 Javascript
详解Vue2.0之去掉组件click事件的native修饰
2017/04/20 Javascript
vue兄弟组件传递数据的实例
2018/09/06 Javascript
ES6常用小技巧总结【去重、交换、合并、反转、迭代、计算等】
2019/12/21 Javascript
[11:33]DAC2018 4.5SOLO赛决赛 MidOne vs Paparazi第二场
2018/04/06 DOTA
python使用tkinter实现简单计算器
2018/01/30 Python
在django view中给form传入参数的例子
2019/07/19 Python
3种适用于Python的疯狂秘密武器及原因解析
2020/04/29 Python
HTML5 Plus 实现手机APP拍照或相册选择图片上传功能
2016/07/13 HTML / CSS
Kathmandu英国网站:新西兰户外运动品牌
2017/03/27 全球购物
怀俄明州飞钓:Platte River Fly Shop
2017/12/28 全球购物
应届毕业生应聘自荐信
2013/12/07 职场文书
《老王》教学反思
2014/02/23 职场文书
大四学生找工作的自荐信
2014/03/27 职场文书
2014年内勤工作总结
2014/11/24 职场文书
2014年卫生监督工作总结
2014/12/09 职场文书
村官2015年度工作总结
2015/10/14 职场文书