为了在IE9之前的CSS中显示以下CSS,应采取哪种解决方法:
background-color: hsla(182, 44%,76%,.5);
答案 0 :(得分:2)
透明元素你有更多的方法。
for IE - >
filter: alpha(opacity=40);
filter: progid:DXImageTransform.Microsoft.Alpha(opacity=40);
/* above line works in IE6, IE7, and IE8 */
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(opacity=40)";
/* above line is IE8 only */
并适用于所有浏览器:
opacity: .7;
但它们是透明的所有元素,如果你只需透明任何颜色,例如背景,你必须使用2个函数rgba
或hsla
并为它们举例:
支持:(Firefox 3 +,Opera 10.1 +,Chrome 2 +,Safari 3.1 +)
#rgba {
background: rgba(98, 135, 167, .4);
}
但IE9仅支持所有版本的IE和所有浏览器支持css3
#hsla {
background: hsla(207, 38%, 47%, .4);
}
答案 1 :(得分:1)
您可以使用Microsoft专有的“过滤器”之一来执行此操作:
background:transparent;
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#7FA7DBDD,endColorstr=#7FA7DBDD);
zoom: 1;
十六进制值按ARGB顺序排列。因此,将颜色转换为RGB十六进制值,(在这种情况下为#A7DBDD
)并将不透明度放在前面(0.5是十六进制的7F),如下所示:#7FA7DBDD
这最好在IE特定样式表中完成,也许使用条件注释。
答案 2 :(得分:0)
使用一个单独的纯色dom元素并设置不透明度......它可以正常工作:)
.bg { 背景:#000; filter:alpha(opacity = 50); 不透明度:0.5; }