3

我有一个相当符合标准的 XHTML+CSS 站点,在 PC 和 Mac 上的所有浏览器上看起来都很棒。前几天我在 Linux 上的 FF3 上看到它,字母间距稍大,使所有内容都乱七八糟,并导致不必要的文本换行和剪切。有问题的CSS有

font-size: 11px;
font-family: Arial, Helvetica, sans-serif;

我知道它与通用的无衬线字体一起使用,无论映射到什么。如果我添加以下内容,文本会变得足够接近我在其他平台上得到的内容:

letter-spacing: -1.5px;

但这将涉及一些令人讨厌的服务器端操作系统嗅探。如果有一个纯 CSS 解决方案,我很想听听。

有问题的系统是 Ubuntu 7.04,但这无关紧要,因为我希望至少为大多数(如果不是全部)Linux 用户修复它。当然,要求用户安装字体不是一种选择!

4

5 回答 5

5

A List Apart 有一篇关于在 CSS 中调整字体大小的非常全面的文章。他们的结论是使用“ ems”来调整文本大小,因为它通常会在浏览器中提供最一致的大小。他们没有直接提及不同的操作系统,但您应该尝试使用 em。它可能会解决您的问题。

于 2008-09-06T15:02:07.550 回答
1

你在 Windows 上的 FF3 中试过吗?

就我个人而言,我发现一个好的 CSS 重置可以让你的页面在所有浏览器中看起来都一样。

于 2008-09-06T14:58:18.963 回答
0

我发现解决浏览器之间字体大小问题的最简单方法就是简单地为错误留出空间。使 div 稍大或字体稍小,以便平台变化不会显着改变环绕或裁剪。

于 2008-09-06T14:56:35.660 回答
0

尺寸/间距差异通常难以捕捉。您可以做的是创建一个特定于 Linux 的 CSS 文件,其中将包含针对 Linux 调整的这些值,然后如果用户代理是 Linux 代理,则执行一个简单的基于 JS 的检测以注入该 CSS。

这可能不是最干净的方法,但它会起作用,并且对您原本干净的 HTML/CSS 的干扰最小。

于 2008-09-06T15:46:46.787 回答
0

除非您的网站预计基于 Linux 的流量会高于正常水平,否则如果您“牺牲用户调整其阅读环境的能力”而不是仅仅不关心 Linux,您可能会对更多人产生不利影响经验。

话虽如此,如果你确实想要一个好的 Linux 体验,你应该解决你的设计在字体间距的微小变化下失败的原因,因为这些问题在当前的 CSS 实现下很难控制。

于 2008-09-07T17:36:52.990 回答