前面在学习《CSS颜色》时我们已经了解,通过 rgba()、hsla() 可以设置颜色的透明度,但是它们只能在定义颜色的同时设置透明度,无法对图像或者其它元素设置透明度。
CSS 中提供了一个 opacity 属性用来设置元素的透明度,它不仅对颜色有效,对图像或者页面中其它的元素也有效。其语法格式如下:
其中 number 为一个 0~1 之间的浮点数(小数),用来表示元素的透明度,值越小则越透明(0 表示完全透明,1 表示完全不透明)。
另外,在使用 opacity 属性时,还需要注意以下几点:
【示例】使用 opacity 属性设置元素的透明度:
<!DOCTYPE html>
<html>
<head>
<style>
img {
width: 150px;
}
img:last-child {
opacity: 0.4;
margin-left: 30px;
}
</style>
</head>
<body>
<img src="./css.png" alt="">
<img src="./css.png" alt="">
</body>
</html>
运行结果如下图所示:
IE8 或者更早版本的 IE 浏览器不支持 opacity 属性,若想要在这些浏览器中实现透明效果可以使用 filter 属性,语法格式如下:
其中 number 的取值范围为 0~100,值越小则越透明。
【示例】使用 filter 属性设置元素的透明度:
<!DOCTYPE html>
<html>
<head>
<style>
img {
width: 150px;
}
img.img_two {
filter: alpha(opacity=50);
margin-left: 30px;
}
</style>
</head>
<body>
<img src="./css.png" class="img_one">
<img src="./css.png" class="img_two">
</body>
</html>
运行结果如下图所示:
为了让所有浏览器都可以实现透明效果,您可以同时定义 opacity 和 filter 两个属性,如下所示: