您的位置:首页 > Web前端 > CSS

css背景透明文字不透明

2015-03-13 10:54 155 查看
测试背景透明度为0.3。文字不透明:

background-color: #000;
/* 一、CSS3的opacity */
opacity: 0.3;  /* 兼容浏览器为:firefox,chrome,IE9+  文字也跟着透明*/

/* 二、CSS3的rgba */
background: rgba(0, 0, 0, 0.3); /* 兼容浏览器为:firefox,chrome,IE9+  其中IE8,IE7,IE6解析为背景全透明  文字不透明 */

/* 三、IE专属滤镜 */
filter:alpha(opacity=30);
*zoom: 1; /* 兼容浏览器为:IE6,7,8,9(需触发haslayout)* 文字透明 当设置div里面元素的属性为rel相对定位,文字不透明*/
/*或*/
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#4d000000,endColorstr=#4d000000);
*zoom: 1;  /*兼容浏览器也是IE6,7,8,9  无须设置rel 文字不透明*/
/*其中startColorstr的组成,前面是00~FF 00表示完全透明相当于opacity=0;FF表示1完全不透明相当于opacity=100 */
var s=0xFF; alert(parseInt(s));FF的十六进制为255;
/*换算0.3的透明度:255*0.3=76.5~=77*/  var s=77;alert(s.toString(16));  //77转16进制为4d


当要使得文字不透明,使用二,三时,ie9两个属性都支持一起使用会重复降低不透明度。

解决方案一:只针对ie7,8使用滤镜,其他用rgba处理。

注意:据说是IEtester不支持滤镜,所以测试不到ie6的效果

.box {
background: rgba(0, 0, 0, 0.3);
}

@media \0screen\,screen\9  {
/* 只支持IE6、7、8 */
.box {
background-color: #000;
filter: alpha(opacity=30);
*zoom: 1;
}
}

.box p { position: relative; }


解决方案二:使用:root .test{filter:none;}可以去除IE9下的滤镜 (推荐使用,代码量少)

其中.test为添加filter的class。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: