职业IT人-IT人生活圈

 找回密码
 成为会员
搜索
查看: 401|回复: 3

解决CSS滤镜同时过滤文字的问题

[复制链接]
能文能武 发表于 2011-7-23 10:08 | 显示全部楼层 |阅读模式
初用CSS滤镜的朋友可能会遇到这样的问题:给div套上filter:alpha(opacity=50);  滤镜后,里面的文字也随之半透明,这种情况下,我们该怎么办呢?

经过本人查阅大量资料,实验N次终于找到了一个兼容ie6,ie7,ie8以及firefox的css透明滤镜的方法,且看我举例说明.

Html代码  
<div id=”body”>  
<span><龙哥博客>解决CSS滤镜同时过滤文字的问题</span>  
</div>  

<div id=”body”>
<span><龙哥博客>解决CSS滤镜同时过滤文字的问题</span>
</div>


Css代码  
<style type=”text/css”>   
#body{ border:1px solid #c00; background-color:rgba(212,0,0,0.5); background:#f00\9; filter:alpha(opacity=10); width:500px; margin:40px auto; line-height:200%; font-size:14px; padding:14px;}   
</style>  

<style type=”text/css”>
#body{ border:1px solid #c00; background-color:rgba(212,0,0,0.5); background:#f00\9; filter:alpha(opacity=10); width:500px; margin:40px auto; line-height:200%; font-size:14px; padding:14px;}
</style>

这样的代码并不能解决过滤文字的问题,想要不过滤文字,就必须在CSS代码里加上这行代码:
Css代码  
#body *{ position:relative;}  

#body *{ position:relative;}

星号是为了让IE6和IE7执行,火狐和IE8就不执行了,火狐本身来讲就不支持IE特有的滤镜功能,所以这里没必要再加星号,怎么样?很简单吧~

原文地址:http://www.52blogger.com/archives/532

话说我当年 发表于 2011-7-23 10:08 | 显示全部楼层
事实上opacity这个滤镜本身就应该连同文字,连同子元素一起透明。如果想做到背景透明,ie有更合适的滤镜:
Css代码  
  
#body{   
/** ie 6 & 7**/   
filter: progidXImageTransform.Microsoft.gradient(startColorstr=#550000FF, endColorstr=#550000FF);   
  
/** ie 8**/   
-ms-filter: "progidXImageTransform.Microsoft.gradient(startColorstr=#550000FF, endColorstr=#550000FF)";   
  
}  

#body{
/** ie 6 & 7**/
filter: progidXImageTransform.Microsoft.gradient(startColorstr=#550000FF, endColorstr=#550000FF);

/** ie 8**/
-ms-filter: "progidXImageTransform.Microsoft.gradient(startColorstr=#550000FF, endColorstr=#550000FF)";

}



更多的看这里吧(英):
http://leaverou.me/2009/02/bulletproof-cross-browser-rgba-backgrounds/






ksdal 发表于 2011-7-23 10:09 | 显示全部楼层
云端有天堂
事实上opacity这个滤镜本身就应该连同文字,连同子元素一起透明。如果想做到背景透明,ie有更合适的滤镜:
Css代码  
  
#body{   
/** ie 6 & 7**/   
filter: progidXImageTransform.Microsoft.gradient(startColorstr=#550000FF, endColorstr=#550000FF);   
  
/** ie 8**/   
-ms-filter: "progidXImageTransform.Microsoft.gradient(startColorstr=#550000FF, endColorstr=#550000FF)";   
  
}  

#body{
/** ie 6 & 7**/
filter: progidXImageTransform.Microsoft.gradient(startColorstr=#550000FF, endColorstr=#550000FF);

/** ie 8**/
-ms-filter: "progidXImageTransform.Microsoft.gradient(startColorstr=#550000FF, endColorstr=#550000FF)";

}



更多的看这里吧(英):
http://leaverou.me/2009/02/bulletproof-cross-browser-rgba-backgrounds/






LS强人也


yoyo 发表于 2011-7-24 10:36 | 显示全部楼层
挺好啊!!!!!!!!!!!!!!!
您需要登录后才可以回帖 登录 | 成为会员

本版积分规则

QQ|手机版|小黑屋|网站帮助|职业IT人-IT人生活圈 ( 粤ICP备12053935号-1 )|网站地图
本站文章版权归原发布者及原出处所有。内容为作者个人观点,并不代表本站赞同其观点和对其真实性负责,本站只提供参考并不构成任何投资及应用建议。本站是信息平台,网站上部分文章为转载,并不用于任何商业目的,我们已经尽可能的对作者和来源进行了通告,但是能力有限或疏忽造成漏登,请及时联系我们,我们将根据著作权人的要求立即更正或者删除有关内容。

GMT+8, 2024-3-29 20:08 , Processed in 0.134021 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表