查看文章
 
IE的filter与ClearType不兼容导致的部分网页字体模糊
2009年05月06日 星期三 下午 3:45

    本人认为,IE7、IE8浏览器的filter引擎与ClearType渲染引擎之间或许存在兼容性问题,下面将详细阐述何种情况下会出现问题。


    首先,按照如下所示设置IE浏览器:


    1、在“Internet选项”中的“字体”选项中,将网页字体改为微软雅黑(或是别的ClearType渲染字体),或者写一段代码如下:


   *{font-family:"微软雅黑";}


   将此文本存为某css文件,如C:\雅黑.css,在“辅助功能”中启用此,不管哪种方法,请勾选“忽略网页上指定的字体样式”以强制启用ClearType字体。


    2、 设置好以后,访问
http://hi.baidu.com/%B0%D9%B6%C8%BF%D5%BC%E4,如果效果如图1,恭喜你出现BUG,如果效果如图2,那本文描述的内容对你无关紧要了。


                                        图1


                                        图2

    分析这些字体显示有问题网页后发现了他们的共同点:这些网页都使用了filter来实现某些效果。因此可以断定只要是启用了filter的网页元素,ClearType在该元素上就会失效。后在MSDN的IE开发团队的博客里,发现了一篇文章http://blogs.msdn.com/ie/archive/2006/08/31/730887.aspx似乎证实了这个猜想,他们好像在有滤镜的网页里刻意关闭了ClearType。

    解决方案:

    1、使用比如傲游这样带有广告过滤的浏览器,写过滤规则,将网页中所有filter屏蔽掉。比如使用Remove IT插件这样写过滤包:

    match: filter:[^;]*?;
    replace: /*removed filter*/
    match_url: .*\.css(?!\w)
    bound: \{[^}]*?\}

    应用一下……所有css文件中的filter都给干掉了……这样避免了ClearType在滤镜下失效的问题,缺点是滤镜的效果没有了。如果忍不了没有滤镜的生活,只好看下面的解决方案了……

    2、使用Firefox,一劳永逸。

    3、网页中不要用ClearType渲染的字体。

    4、默默忍受并每天咒骂微软N次。


类别:操作系统||添加到搜藏 |分享到i贴吧|浏览(2847)|评论 (0)
 
最近读者:
 
网友评论:
发表评论:
姓 名:
网址或邮箱: (选填)
内 容:
     

   
帮助中心 | 空间客服 | 投诉中心 | 空间协议
©2012 Baidu