首页 > 开发 > CSS > 正文

css 背景半透明最佳实践

2024-07-11 08:47:53
字体:
来源:转载
供稿:网友
现在有一个需求,需要对一个纯色的层实现半透明效果。效果如下,边框需要透明,透明度为 #000000 的 30%:

背景半透明

用各种浏览器打开下面这个 DEMO, IE9 有特殊显示:http://demo.VeVb.com/js/2011/transparentbg/

一、使用 opacity + Alpha Filter

看起来手挺简单的吧?嗯。挺简单的… 希望你能很方便实现这个方案!其实见到这个的时候,我们的第一想法当然是 background + opacity,在不支持 opacity 的 IE 使用 filter 的 alpha 滤镜来实现。然后,我们得到这样的效果:

背景半透明

.opacity{    background:#000;    opacity:0.3;    filter: alpha(opacity=30);}

无一例外,最外层,最内层和文字,都被设置了 opacity(alpha 也是使用 opacity ) 。当然,我们可以给各层设置 opacity 变回来。但这是多麻烦的事(不信试一下)。

二、最佳实践:rgba色彩 + Gradient Filter

其实我们可以选用 background-color: rgba() 来实现,同样可以实现透明效果,并且只应用于当前元素,不继承。而 IE 的 filter 有很多滤镜效果。其中的渐变滤镜,只要变通一下,就可以实现我们想要的效果,并且这个滤镜不会被下级元素继承,这样元素的内容就不会被虚化。代码如下:

复制代码
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表