利用CSS来控制透明度

在日常WEB前端开发中经常需要利用透明特性来做出一些比较绚丽的效果。那么,怎样来实现透明效果呢?实现的方式有很多种,常见的有使用透明图片来实现,但是这会加大带宽和页面的加载速度。今天教大家采用纯CSS来控制元素的透明度,并且有很好的浏览器兼容性。

下面是一段利用纯CSS代码来控制HTML元素的透明度,IE浏览器使用滤镜(filter)来实现透明度控制,而Firefox、Safair等通过自定义的属性来实现。如下:

/* IE滤镜,透明度50% */
filter:alpha(opacity=50);
/* Firefox私有,透明度50% */
-moz-opacity:0.5;
/* 支持Safair1.X版本 */
-khtml-opacity: 0.5;
/* 其他,透明度50% */
opacity:0.5;

上面的几个属性分别是:

  • opacity: 0.5;  这是最重要的,因为它是CSS标准.该属性支持Firefox, Safari和 Opera.

  • filter:alpha(opacity=50);  这个是为IE6设的,可取值在0-100,其它三个0到1.

  • -moz-opacity:0.5;  这个是为了支持一些老版本的Mozilla浏览器。

  • -khtml-opacity: 0.5;  这个为了支持一些老版本的Safari浏览器。

实例代码:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "https://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>CSS控制透明度</title>
<meta http-equiv="content-type" content="text/html;charset=gbk" />
<meta name="Keywords" content="CSS,透明度" />
<meta name="Description" content="CSS控制透明度" />
<style type="text/css">
div.outcontainer{
    height:200px;
    line-height:20px;
    width:300px;
    margin:20px;
    border:1px solid #F0F0F0;
    background:#F8F8F8;
    padding:10px;
    position:relative;
}
div.outcontainer div.opacity {
    height:100px;
    width:150px;
    position:absolute;
    left:50%;
    top:50%;
    margin-left:-75px;
    margin-top:-50px;
    background:#000;
    /*透明度设置*/
    filter:alpha(opacity=50);
    -moz-opacity:0.5;
    -khtml-opacity: 0.5;
    opacity:0.5;
}
</style>
</head>
<body>
<div class="outcontainer">
利用CSS控制透明度不是很麻烦,如下:<br/><br/>
/* IE滤镜,透明度50% */<br/>
filter:alpha(opacity=50);<br/><br/>
/* Firefox私有,透明度50% */<br/>
-moz-opacity:0.5;<br/><br/>
/* 其他,透明度50% */<br/>
opacity:0.5;<br/>
    <div class="opacity"></div>
</div>
</body>
</html>

效果图:

利用CSS来控制透明度

但是还是会有很多问题,浏览器兼容性问题等等,而且IE滤镜的频繁使用会使浏览器的执行效率降低。 所以不提倡过多使用滤镜,你也还有其他方法可以模拟,比如用宽高都是1px的透明png图片覆盖等等。

人生就像赛跑,不在乎你是否第一个到达终点,而在乎你有没有跑完全程。
0 不喜欢
说说我的看法 -
全部评论(
没有评论
关于
本网站专注于 Java、数据库(MySQL、Oracle)、Linux、软件架构及大数据等多领域技术知识分享。涵盖丰富的原创与精选技术文章,助力技术传播与交流。无论是技术新手渴望入门,还是资深开发者寻求进阶,这里都能为您提供深度见解与实用经验,让复杂编码变得轻松易懂,携手共赴技术提升新高度。如有侵权,请来信告知:hxstrive@outlook.com
公众号