css背景透明文字不透明
测试背景透明度为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。