我正在使用Google网络字体PT-sans
font-family: 'PT Sans',Arial,serif;
但在Chrome和Firefox中看起来有所不同
我需要添加任何内容以使其在所有浏览器中看起来都相同吗?
答案 0 :(得分:22)
对于FontSquirrel的ChunkFive字体,指定“font-weight:normal;”当在标题中使用时,Firefox的渲染从看起来像屁股停止。看起来Firefox试图将假冒粗体应用于只有一个重量的字体,而Chrome则不是。
答案 1 :(得分:12)
对我来说,Chrome网页字体看起来很糟糕,直到我把SVG字体放在WOFF和TrueType之前。例如:
@font-face {
font-family: 'source_sans_proregular';
src: url('sourcesanspro-regular-webfont.eot');
src: url('sourcesanspro-regular-webfont.eot?#iefix') format('embedded-opentype'),
url('sourcesanspro-regular-webfont.svg#source_sans_proregular') format('svg'),
url('sourcesanspro-regular-webfont.woff') format('woff'),
url('sourcesanspro-regular-webfont.ttf') format('truetype');
font-weight: normal;
font-style: normal;
}
即便如此,Chrome的字体看起来比Firefox或IE更薄。 Chrome在这一点上看起来很不错,但我通常想在IE和Firefox中设置不同的字体。我使用IE条件注释和jQuery的混合来根据浏览器设置不同的字体。对于Firefox,我在页面加载时运行以下函数:
function setBrowserClasses() {
if (true == $.browser.mozilla) {
$('body').addClass('firefox');
}
}
然后在我的CSS中,我可以说
body { font-family: "source_sans_proregular", Helvetica, sans-serif; }
body.firefox { font-family: "source_sans_pro_lightregular", Helvetica, sans-serif; }
同样,在IE条件评论中包含的仅IE样式表中,我可以说:
body { font-family: "source_sans_pro_lightregular", Helvetica, sans-serif; }
答案 2 :(得分:6)
有一些修复。但通常可以通过以下方式修复:
html {
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
有时可能是font-weight
造成的。如果您使用@font-face
自定义字体,请确保font-weight
语法正确无误。在@font-face
中,font-weight
/ font-style
属性的含义是在使用不同的font-family
或{时,将@font-face
名称保留在不同的font-weight
声明中{1}}所以这些值在CSS中正常工作(并加载自定义字体 - 而不是“假冒粗体”)。
我看到font-style
提到加厚webkit字体,但我想如果你使用我给的第一段代码,你可能不会需要这个。
答案 3 :(得分:5)
我注意到chrome倾向于使字体更清晰,firefox更平滑。 你无能为力。祝你好运
答案 4 :(得分:5)
css reset可以解决问题,我不确定。
答案 5 :(得分:5)
为避免浏览器之间的字体差异,请避免使用css样式来更改字体外观。使用font-size属性通常是安全的,但您可能希望避免使用font-weight:bold;相反,你应该下载字体的粗体版本并给它另一个字体系列名称。
答案 6 :(得分:3)
截至2014年,Chrome仍有一个已知的错误,如果使用的webfont安装了本地副本,它会选择使用本地版本,因此会导致OP渲染问题。
要解决此问题,您可以执行以下操作:
首先,定位Chrome浏览器或OSX(对我来说,问题仅在于OSX Chrome)。我使用这个简单的JS来快速检测浏览器/操作系统,您可以选择以您习惯的任何其他方式执行此操作:
https://raw.github.com/rafaelp/css_browser_selector/master/css_browser_selector.js
现在您可以定位浏览器/操作系统,创建以下“新”字体:
@font-face {
font-family: 'Custom PT Sans';
src: url(http://themes.googleusercontent.com/static/fonts/ptsans/v6/jKK4-V0JufJQJHow6k6stALUuEpTyoUstqEm5AMlJo4.woff) format('woff');
font-weight: normal;
font-style: normal;
}
在嵌入google webfont时,字体网址与浏览器使用的字体网址相同。如果您使用任何其他字体,只需相应地复制和更改URL。
在此处获取网址http://fonts.googleapis.com/css?family=PT+Sans:400,700&subset=latin,latin-ext
您也可以重命名@ font-face自定义字体系列别名。
创建一个简单的CSS规则,以使用该字体定位浏览器/操作系统或两者:
.mac .navigation a {
font-family: "Custom PT Sans", "PT Sans", sans-serif;
}
或
.mac.webkit p {
font-family: "Custom PT Sans", "PT Sans", sans-serif;
}
完成。只需在任何需要的地方应用font-family规则。
答案 7 :(得分:2)
不同的浏览器(以及FWIW,不同的操作系统)使用不同的字体渲染引擎,并且它们的结果并不相同。正如已经指出的那样,你不能对它做任何事情(除非显然你可以用图像或flash替换文本或使用javascript + canvas实现你自己的渲染器 - 如果你问我,后者有点过火。)
答案 8 :(得分:2)
我发现这很有效:
-webkit-text-stroke: 0.7px;
或
-webkit-text-stroke: 1px rgba(0, 0, 0, 0.7);
尝试使用“0,7”值来根据您的需要进行调整。 在您定义bodys字体的位置添加这些行。
这是一个例子:
body {
font-size: 100%;
background-color: #FFF;
font-family: 'Source Sans Pro', sans-serif;
margin: 0;
font-weight: lighter;
-webkit-text-stroke: 0.7px;
答案 9 :(得分:0)
我有同样的问题几个月了。最终,它通过在Chrome浏览器的设置中禁用以下设置来起作用。
将“加速的2D画布”设置为“已禁用” (在浏览器的地址栏中,转到chrome:// flags#disable-accelerated-2d-canvas,更改设置,然后重新启动浏览器。)
由于此问题的修复程序已发生明显变化,因此我建议,如果此修复程序停止工作,则通常在将来关闭所有硬件加速的文本呈现/ 2D呈现功能。
在Google Chrome 55上,此问题似乎再次出现。如预期的那样,此修复程序禁用了硬件加速,只是更改了位置。
(对我而言)新修复程序似乎是:
设置->显示高级设置...->系统 取消选中“在可用时使用硬件加速”
https://superuser.com/questions/821092/chromes-fonts-look-off