让IE支持RGBa的背景色

文章部分内容来自:RGBa Browser Support

老版本的IE不支持RGBa的背景色,不过我们可以用滤镜实现同样的效果。上代码:

<!DOCTYPE html>
<html>
	<head>
		<title>Demo</title>
		<style type="text/css">
			#div1 {
				padding: 10px;
				width: 380px;
				height: 205px;
				background: url(shuizhu.jpg);
			}
			#div2 {
				color: #FFF;
				font-size: 40px;
				font-weight: bold;
				text-align: center;
				
				height: 205px;
				line-height: 205px;
				background: rgba(125, 0, 0, .3);
				filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#4B7D0000
						,endColorstr=#4B7D0000);
			}
		</style>
	</head>
	<body>
		<div id="div1">
			<div id="div2">	
				Hello world!
			</div>
		</div>
	</body>
</html>

DXImageTransform.Microsoft.gradient滤镜里的startColorstr参数值是#AARRGGBB形式的,其中的AA是代表不透明度的十六进制,00表示完全透明,FF就是全不透明,化成十进制的范围就是0~255,剩下的RRGGBB就是颜色的十六进制代码。例子中background: rgba(125, 0, 0, .3);表示的是30%不透明度的红色背景。如何把30%的不透明度转换成十六制呢?很简单,先计算#AA的的十进制x,x/255 = 3/10,解得x=3*255/10,然后再把x换算成十六进制,约等于4B。

下面附上示例中用到的图片:

发表评论