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。

 

posted @ 2015-03-13 10:54  psycho_z  阅读(457)  评论(0编辑  收藏  举报