感谢 @林小志 的博客,让我知晓 IE过渡滤镜 + CSS3 rgba 即可完美实现。
具体实现代码如下:
代码如下 | 复制代码 |
.transparent { background:rgba(0, 0, 0, 0.3); filter:progid:DXImageTransform.Microsoft.Gradient(GradientType=0, StartColorStr='#4c000000', EndColorStr='#4c000000'); } :root .transparent { |
提示:IE9 支持 filter 与 rgba 属性,这会导致其背景透明度双倍叠加!
解决:使用 :root 伪类为 IE9 单独写 HACK 并将其透明度降为 0 即可。
一.未设置半透明样式实例
代码如下 | 复制代码 |
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>css背景半透明www.111cn.net</title> <style> .div-a{ background:url(div-a-bg.png) no-repeat;width:230px;height:136px;padding:10px;} .div-b{ background:#000;width:200px;height:100px;padding:5px;color:#F00} </style> </head> <body> <div class="div-a"> <div class="div-b">DIV半透明实例演示</div> </div> </body> </html> |
二.对DIV设置CSS半透明样式实例
对“.div-b”选择器加入半透明样式代码:filter:alpha(Opacity=60);-moz-opacity:0.6;opacity: 0.6;
代码如下 | 复制代码 |
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>css背景半透明www.111cn.net</title> <style> .div-a{ background:url(div-a-bg.png) no-repeat;width:230px;height:136px;padding:10px} .div-b{ background:#000;width:200px;height:100px;padding:5px;color:#F00; filter:alpha(Opacity=60);-moz-opacity:0.6;opacity: 0.6} /* CSS注释说明:这里对CSS代码换行是为了让代码在此我要中显示完整,换行后CSS效果不受影响 */ </style> </head> <body> <div class="div-a"> <div class="div-b">实现DIV半透明实例演示</div> </div> </body> </html> |
说明:
1、filter:对win IE设置半透明滤镜效果,filter:alpha(Opacity=80)代表该对象80%半透明,火狐浏览器不认
2、-moz-opacity:对mozilla firefox火狐浏览器实现半透明,win IE不认此属性,-moz-opacity:0.5相当于设置半透明为50%
3、opacity:对除IE外所有浏览器支持包括谷歌,放最后主要针对谷歌浏览器,opacity: 0.5;表示设置50%半透明
为了观察到对DIV半透明实现,我们设置两个DIV层,分别一个放于另外一个DIV层内,外层DIV命名为“.div-a”;上面被包含的层CSS类命名为“.div-b”,形成“.div-b”盒子放于“.div-a”内
我们对底层DIV设置一个背景是一张图片,上面的DIV盒子设置村黑色。