解决方法
小提琴:
http://jsfiddle.net/uenrX/1/
外部DIV的不透明度属性不能被内部DIV撤消。如果要实现透明度,请使用rgba
或hsla
:
外部div:
background-color: rgba(255,255,0.9); /* Color white with alpha 0.9*/
内部div:
background-color: #FFF; /* Background white,to override the background propery*/
编辑
因为你在你的问题中添加了filter:alpha(opacity = 90),我假设你还想要一个工作的解决方案(旧版本的IE)。这应该工作(-ms-前缀为最新版本的IE):
/*Padded for readability,you can write the following at one line:*/ filter: progid:DXImageTransform.Microsoft.Gradient( GradientType=1,startColorStr="#E6FFFFFF",endColorStr="#E6FFFFFF"); /*Similarly: */ filter: progid:DXImageTransform.Microsoft.Gradient( GradientType=1,endColorStr="#E6FFFFFF");
我使用渐变过滤器,从相同的开始和结束颜色开始,以便背景不显示渐变,而是一个平坦的颜色。颜色格式为ARGB十六进制格式。我写了一个JavaScript代码段将相对不透明度值转换为绝对alpha-hex值:
var opacity = .9; var A_ofARGB = Math.round(opacity * 255).toString(16); if(A_ofARGB.length == 1) A_ofARGB = "0"+a_ofARGB; else if(!A_ofARGB.length) A_ofARGB = "00"; alert(A_ofARGB);