代码之家  ›  专栏  ›  技术社区  ›  Daniel Sloof

IE8:禁用ClearType?

  •  25
  • Daniel Sloof  · 技术社区  · 16 年前

    对于IE7,可以添加

    filter: none;
    

    通过css禁用字体的ClearType。我不喜欢它的模糊外观,而且它在浏览器中也不太一致。IE;火狐和IE6显示的不同。

    然而,IE8似乎忽略了CSS选项,即使在强制浏览器进入IE7兼容模式时使用:

    <meta http-equiv="X-UA-Compatible" content="IE=7" />
    


    如何禁用IE8到CSS中的清除字体?

    http://oi42.tinypic.com/23mlmiu.jpg

    8 回复  |  直到 13 年前
        1
  •  18
  •   rpetrich    16 年前

    据我回忆,当在元素上设置筛选器时,Internet Explorer 7+将禁用ClearType。

    #target {
        -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(opacity=99)";
        filter:progid:DXImageTransform.Microsoft.Alpha(opacity=99);
    }
    

    另外,考虑到许多用户可能会觉得禁用ClearType很烦人。节俭使用!

        2
  •  16
  •   Joey Gumbo    15 年前

    不能。ClearType是浏览器上的用户设置。对于某些元素禁用它的任何CSS都很可能是一个bug,而不是一个特性(我注意到它对于某些动态生成的或动画元素是禁用的),不应该依赖它。

    无论您在这方面的偏好是什么,都可能不是用户看到您的站点。那么为什么要麻烦呢?不喜欢ClearType的人可能已经禁用了它。

    注: 它与过滤器一起工作的原因是,过滤器不是由浏览器呈现的,而是其他一些东西(考虑到其中的“dx”,可能是directx)。我仍然认为这是一个副作用,而不是一个特征)。

    注2: 如预期,从IE 9开始修复。这真是一场你只能输的战斗,正如许多人之前告诉过你的,除非你不听。

        3
  •  3
  •   capnhairdo    16 年前

    Juliano,Body过滤器:无是更好、更清洁的解决方案。在某些情况下,使用不透明度会导致问题。

    回答所有的ClearType爱好者——我也喜欢ClearType。我认为这是一个伟大的进步,液晶显示器。问题是,当IE尝试在某些特定元素上使用ClearType时,它看起来 更糟的 如果你禁用了ClearType。这些元素包括淡入视图(使用javascript)的元素以及导入的@font-face字体。如果你 喜欢 ClearType,那么你要 憎恨 IE在这些情况下尝试使用ClearType时会做什么…你的文本看起来很粗,很胖,很难看。

    在这些情况下,如果可能的话,应该删除cleartype,以获得你们想要的平滑字体。

        4
  •  3
  •   Joey Gumbo    15 年前

    没有禁用ClearType的CSS解决方案。在IE7中可以这样做的原因是浏览器在使用过滤器的元素中呈现文本的方式产生的结果。表面上,IE8处理得更好,这样你就不能再使用黑客了(至少在没有实际应用过滤器的情况下不会)。

    ClearType的使用是用户的选择,而不是应该强加给访问者的东西。就我个人而言,我真的很喜欢ClearType,如果我访问了一个被禁用的站点,我会认为这个站点看起来很糟糕。

    在不同的浏览器和不同的操作系统中,文本呈现的方式不同,这是您必须面对的事实。如果你想让每个人都一模一样,你必须把它做成一个形象。

        5
  •  1
  •   Lor Lor    16 年前

    在基于JavaScript/Ajax的解决方案中,ClearType有时看起来很愚蠢,但本主题可能回答了这个问题,即为什么一些基于jQuery的动画在IE中看起来会被破坏。所以,答案是当javascript使用不透明度(1秒钟内不透明度从100变为0)产生渐变效果时,cleartype字体将从逐渐淡出的元素中移除,动画看起来像是血腥的垃圾。

        6
  •  1
  •   Oliver    13 年前

    我觉得这里有很多人没在听。@丹尼尔·斯洛夫一直在问,这是怎么做的,而不是是否是个好主意。IE是一个坏主意,完全停止,但事实是,许多人仍然使用它的旧版本和那些人,我会冒险猜测,90%不知道,甚至是明确的类型是什么-我相信地狱没有,直到我开始调试网站。他们当然不知道自己的浏览器有多垃圾。如果你想设计在IE中看起来像WebKit中一样光滑的、功能正常的页面,你必须时不时地接受这种奇怪的黑客攻击,当然这不是很漂亮,但这就是生活。大多数人会更受漂亮的网站的影响,而不是漂亮的代码。

    @卡普黑尔说@FONT face的时候也是鲍伯-你们当中有人真的用IE7和IE8中启用的清晰字体测试过这些字体吗?如果你已经意识到许多被渲染成可怕的-像你通常会得到的CT禁用-有点失败的对象在选择一个好的字体在第一位,对许多人来说,像cufon和sifr是不可行的解决方案。对我们中的一些人来说,事情看起来平庸是可以的。对我来说不是,我的网站卖我的图片。

    当你考虑到甚至苹果公司也在他们的网站上强制IE7仿真IE8时,应该强调大多数人不会受到“推荐实践”的微小偏差的影响,相反,他们更注意到一个提供垃圾审美和几乎不可读的网站。这对任何人都没有好处,这是CT打开时可能出现的问题!我努力争取尽可能多的一致性,不能给一个东西在那种情况下IE用户应该和不应该有什么选择。微软让那些试图偏离标准的浏览器陷入了困境,他们自己已经发布了黑客和修复程序,所以我们必须与之合作。如果这意味着利用一个bug来修复一个问题,那么只要它对性能、带宽或可用性没有太大的影响,那么就这么做吧!生活太短了,不能乱引用标准遵从性,我尊重整洁的代码和严格的方法论,但拜托,你们有如所说的好,你们自己完美不存在。良好的设计和结构来自于一个平衡的角度。这是咆哮的结尾-p

        7
  •  0
  •   chovy    15 年前

    由于某些原因,定位元素(位于位置:相对内的任何内容)的动画不透明度小于1。

        8
  •  0
  •   Kris    15 年前

    您可以在一个元素上同时使用ms-css过滤器,并且仍然可以在其中的字体上启用ClearType。只需添加一个子元素并将其css“position”设置为“relative”,ClearType就不会被禁用。复制以下内容并尝试。

    <style>
    #parent{
         background-color:white;
         filter:progid:DXImageTransform.Microsoft.Shadow(color=#000000,direction=180,strength=2);
         position:relative;
         border:solid 1px black;
         padding:10px;
         width:500px;
    }
    #child{
         position:relative; /*THIS SOLVED THE CLEARTYPE DISABLING PROBLEM IN BOTH IE7 & IE8*/ :)
    }
    </style>
    
    <div id="parent">
         <div id="child">This text should always be smooth</div>
    </div>