在css3之前,在樣式中指定的顏色值只能為RGB顏色值,並且只能通過opacity屬性來設置元素的透明度。CSS3中增加了3種顏色值-RGBA顏色值,HSL顏色值及HSLA顏色值,並且允許通過對RGBA顏色值和HSLA顏色值設定alpha通道的方法來更加容易地實現將半透明文字與圖像互相重疊的效果。
alpha通道與opacity屬性的區別
opacity屬性時css中專門用來指定透明度的一個屬性,取值范圍也在0-1之間,0表示完全透明,1表示不透明。使用alpha通道對元素設定透明度時,可以單獨針對元素的背景色和文字顏色等來指定透明度,而opacity屬性只能指定整個元素的透明度。
但alpha通道與opacity屬性並不兼容ie9以下的版本,以下為本人利用濾鏡等方式解決了此問題,兼容各個版本。
RGBA方法(兼容各個版本)
<!DOCTYPE HTML>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>RGBa 與 opacity 效果的區別</title>
<!--以下為通用浏覽器的寫法-->
<style type="text/css">
.main{ background:#000; width:300px; height:300px; }
.main-1{ background:rgb(255,255,255); background:rgba(255,255,255,0.2);width:300px; height:50px; }
</style>
<!--以下為針對ie浏覽器的寫法-->
<!--[if IE]>
<style type="text/css">
.main-1{
background: transparent;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#20ffffff', endColorstr='#20ffffff');
zoom: 1;
}
</style>
<![endif]-->
</head>
<body>
<div class="main"><div class="main-1"></div></div>
</body>
</html>
opacity方法(兼容各個版本)
<!DOCTYPE HTML>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>RGBa 與 opacity 效果的區別</title>
<style type="text/css">
.main{ background:#000; width:300px; height:300px; }
.main-1{ background:#fff; filter:alpha(opacity=20);opacity:0.2;width:300px; height:50px; }
</style>
</head>
<body>
<div class="main"><div class="main-1"></div></div>
</body>
</html>