CSS 背景透明实现
Css实现背景透明代码很简单
opacity:0.5;
filter:alpha(opacity=50);
但是使用这段代码,会使子元素也具有透明效果,于是牛人们使用定位来实现透明,这里不多说。
还有一种更简单的方法,那就是CSS3的rgba。
background-color: rgba(0, 0, 0, 0.5);
万恶的IE(IE9以下)是不支持rgba的,但是微软的滤镜可以解决。
filter: progid:DXImageTransform.Microsoft.Gradient(GradientType=0, StartColorStr='#80000000', EndColorStr='#80000000');
代码中ColorStr的前两位是透明度的16进制表示,后6位是颜色值。透明度的计算工式:透明度*256 转换为16进制
又有问题啦,IE9也是支持滤镜的,同时使用rgba及filter,在IE9下是两个半透明重叠的效果。解决方案:
filter: progid:DXImageTransform.Microsoft.Gradient(GradientType=0, StartColorStr='#80000000', EndColorStr='#80000000') \9;
background-color: rgba(0, 0, 0, 0.5);
background-color: transparent \9;
如果有更好的方案,请提出,共同讨论。