最近有一位客户抱怨IE6中出现了系统字体。基本上问题是IE6不支持字体平滑/抗锯齿(我知道你可以在OS设置或其他东西中打开它)。但有人抛弃了这个宝石:
“您可以使用pt而不是px强制css中的字体反别名。”
我在各种浏览器中做了一个快速的POC,没有看到任何区别。我在网上发现了一个对它的引用,这篇论坛的最后一篇文章:
http://www.webmasterworld.com/css/3280638.htm
这听起来像是一个网络开发者城市神话,我觉得它是BS。有没有人见过它?
答案 0 :(得分:46)
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
font-smoothing: antialiased;
Source for Firefox,感谢Justin提醒。
答案 1 :(得分:39)
CSS3中有这些令人兴奋的新属性:
font-smooth:always;
-webkit-font-smoothing: antialiased;
尽管我自己还没有做过多少测试,但他们几乎肯定不会对IE有任何好处。可能对Windows上的Chrome或Firefox有用。上次我检查时,他们并没有像在OSX中那样自动对抗小东西。
<强>更新强>
IE或Firefox不支持这些功能。字体平滑属性仅在我记得的iOS Safari中可用
答案 2 :(得分:29)
不,作为网络开发者,没有任何方法可以控制它。
小的例外是你可以通过sIFR使用Flash来做一些伪造的抗锯齿功能,而且有些浏览器不会对位图/像素字体进行反别名(因为它们不应该,更多信息: Anti-Aliasing / Anti-Anti-Aliasing)。
另外,正如Daniel所说,对所有字体使用em
个单位是理想的,有关详细信息,请参阅The Incredible Em & Elastic Layouts with CSS。
答案 3 :(得分:16)
我使用缩放和过滤ms-only属性找到了一个非常尴尬的解决方案 示例(尝试没有aa,标准和cleartype): http://nadycoon.hu/special/archive/internet-explorer-force-antialias.html
工作原理:
-zoom up zoom with zoom:x,x&gt; 1
- 应用一些模糊(或任何其他过滤器)
-zoom down zoom:1 / x
它有点慢,非常!记忆力很大的方法,在非白色背景上它有一些轻微的黑暗光环。
CSS:
.insane-aa-4b { zoom:0.25; }
.insane-aa-4b .insane-aa-inner { zoom:4; }
.insane-aa-4b .insane-aa-blur { zoom:1;
filter:progid:DXImageTransform.Microsoft.Blur(pixelRadius=2);
}
HTML:
<div class="insane-aa-4b">
<div class="insane-aa-blur">
<div class="insane-aa-inner">
<div style="font-size:12px;">Lorem Ipsum</div>
</div></div></div>
你可以使用这个简短的jQuery来强制消除锯齿,只需将ieaa类添加到任何东西:
$(function(){ $('.ieaa').wrap(
'<div style="zoom:0.25;"><div style="zoom:1;filter:progid:DXImageTransform.Microsoft.Blur(pixelRadius=2);"><div style="zoom:4;"><'+'/div><'+'/div><'+'/div>'
); });
答案 4 :(得分:8)
添加以下CSS系列适用于Chrome,但不支持Internet Explorer或Firefox。
text-shadow: #fff 0px 1px 1px;
答案 5 :(得分:7)
我不同意Chad Birch。我们可以强制消除锯齿,至少在 Chrome 中使用-webkit-text-stroke
属性的简单css技巧: -
-webkit-text-stroke: 1px transparent;
答案 6 :(得分:3)
我说这是一个神话。
我在pt,px和基于百分比的字体之间找到的唯一区别是,当菜单&gt; IE将按比例缩放。查看&gt;文字大小&gt; ?设置?改变了。
IIRC:
px
和pt
的字体不会缩放percent
基于IE的字体缩放就好了AFAIK:
"ClearType"
的窗口设置控制,或者在IE7 / IE8的情况下由ClearType
的IE特定设置控制。答案 7 :(得分:2)
我觉得你有点不对劲。您粘贴的主题中有人说您可以使用px
代替pt
停止消除锯齿,而不是强制它使用后者。我对这两个说法都有点怀疑......
答案 8 :(得分:2)
px to pt fix在使用Google Web Fonts字体的网站上为我工作。在Win7 - IE8上,它正确地修复了缺少抗别名渲染的问题。
答案 9 :(得分:1)
使用99%的不透明度设置(通过DXTransform过滤器)实际上会强制Internet Explorer关闭ClearType,至少在版本7中是这样。Source
答案 10 :(得分:0)
我怀疑无论如何都迫使浏览器做任何事情。这取决于系统配置,使用的字体,浏览器设置等。它听起来也像BS一样。
作为注释,始终使用相对尺寸而不是PX。
答案 11 :(得分:0)
似乎可以在http://www.elfboy.com/blog/text-shadow_anti-aliasing/找到最详尽的解决方案。适用于Firefox和Chrome,虽然Firefox不如Chrome有效。
答案 12 :(得分:0)
作为旁注,Gecko和WebKit支持
text-rendering
属性。
答案 13 :(得分:0)
不是纯CSS但是本机支持的方法没有任何字体替换黑客: 只需将您的字体转换为SVG并将其放置在@ font-face顺序中更高(在WOFF或TTF之前)。瞧!字体现在很流畅,因为它们不再被视为字体,而是SVG形状,可以很好地平滑。
注意:我注意到SVG的重量可能超过WOFF或TTF。
答案 14 :(得分:0)
这是一种实现抗锯齿的好方法:
text-shadow: 0 0 1px rgba(0,0,0,0.3);
答案 15 :(得分:0)
我找到了修复......
.text {
font-size: 15px; /* for firefox */
*font-size: 90%; /* % restart the antialiasing for ie, note the * hack */
font-weight: bold; /* needed, don't know why! */
}