【问题标题】:CSS font cross browser compatibilityCSS字体跨浏览器兼容性
【发布时间】:2012-01-11 22:21:37
【问题描述】:

我已经阅读了一堆关于 css 交叉兼容性的教程,其中提到了 css 重置表和其他一些技术,但我还没有能够创建一个在多个浏览器上字体看起来完全相同的网站。我已经从 pt 切换到 px 并结合了一些其他有帮助的技术。有谁知道更好的技术吗?

谢谢

【问题讨论】:

  • 您使用什么字体/粗细/?您将需要一个非常强大的字体堆栈
  • 有些我什么都不声明,有些我用粗体和斜体。我一直在使用 Arial、Helvetica、sans-serif 的字体系列
  • 查看@font-face 或cufon
  • pt 用于打印,绝不能用于网页字体。

标签: css fonts cross-browser


【解决方案1】:

我不知道你说的有多准确,但它永远不会在每个浏览器中都完全相同(对像素而言)。例如,我注意到与 Windows 相比,OS X 倾向于使字体更宽(由于它对文本的抗锯齿)。不同的浏览器渲染字体,即使是相同的字体,也会略有不同,有时会增加几个像素,具体取决于您的布局。

【讨论】:

  • 我明白这一点。我会澄清我的问题。我只想能够在多个浏览器中打开它们,并且能够说,“是的,它们是相同的字体”。我不希望它们成为一个像素一个像素。
【解决方案2】:

如果您希望字体看起来完全相同相同(大小和全部)并且您只是在谈论标题,那么您可能想尝试使用图像。

不过,最好使用@font-face 和一些生成的字体。

查看 FontSquirrel,它为多个浏览器生成单独的字体文件。

http://www.fontsquirrel.com/fontface

【讨论】:

    【解决方案3】:

    除了已经提到的那些之外,typekit 可能也是您的解决方案。

    https://typekit.com/

    您必须知道,用户机器只有在他们的计算机上确实有这些字体时才能显示您选择的字体。

    f.efont-family: "Super Font", Helvetica, sans-serif;

    如果您选择了一种名为“Super Font”的字体,用户的机器将不会显示这种确切的字体,因为他们的机器上可能没有这种字体。正如您在 CSS 中声明的那样,用户机器现在将查看大多数计算机在其机器上的替代“Helvetica”,因此将显示“Helvetica”。如果连“Helvetica”都不可用,用户机器将显示无衬线字体。

    以下是常用字体列表:Link

    您已经看到,它们的外观和字体粗细略有不同,因为它们的渲染方式与 Nate B 已经提到的不同。

    如果您想使用“超级字体”,请查看 http://www.fontsquirrel.com/fontface,正如 Jason Gennaro 已经推荐的那样。在那里,您不仅可以从大量免费字体中选择一种字体,还可以使用@font-face 生成器上传您自己的字体,并获得将它们构建到您的 CSS 中所需的一切,这样每台机器都会能够显示它们(只要支持@font-face,Link)。即使它已经得到很好的支持,也总是声明一个后备字体。

    这里有一篇关于声明字体大小的不同方法的好博文:Link

    如果您想深入了解如何在不同设备上控制字体大小,请查看这篇文章:Link

    【讨论】:

    • 感谢您的信息。我对 google、facebook 和 hulu 等网站如何在每个浏览器中呈现相同的字体感兴趣。在大多数情况下,他们的网站在任何浏览器中看起来几乎完全相同。
    猜你喜欢
    • 2015-03-07
    • 1970-01-01
    • 2012-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-07
    • 2012-02-06
    相关资源
    最近更新 更多