我有一个符合标准的XHTML + CSS网站,在PC和Mac上的所有浏览器上都很棒。有一天,我在Linux上的FF3上看到它,字母间距稍微大一点,把所有东西都弄得乱七八糟,造成不必要的包装和剪切文本。有问题的CSS有
font-size: 11px;
font-family: Arial, Helvetica, sans-serif;
我知道它与通用的sans-serif一致,无论映射到什么。如果我添加以下内容,文本会足够接近我在其他平台上获得的内容:
letter-spacing: -1.5px;
但这会涉及一些讨厌的服务器端操作系统嗅探。如果有一个纯粹的CSS解决方案,我很乐意听到它。
有问题的系统是Ubuntu 7.04,但这是无关紧要的,因为我希望至少为大多数(如果不是全部)Linux用户修复它。当然要求用户安装字体不是一种选择!
答案 0 :(得分:5)
List Apart有一个漂亮的comprehensive article on sizing fonts in CSS。他们的结论是使用“ems
”来调整文本大小,因为它通常会在浏览器中提供最一致的大小调整。他们没有直接提到不同的操作系统,但你应该尝试使用ems。它可能会解决您的问题。
答案 1 :(得分:1)
你在Windows上的FF3中试过吗?
就个人而言,我发现一个好的CSS重置可以让你的页面在所有浏览器中看起来都一样。
答案 2 :(得分:0)
我发现解决浏览器之间字体大小问题的最简单方法就是为错误留出空间。使div稍大或字体稍小,以便平台变化不会显着改变包装或剪裁。
答案 3 :(得分:0)
尺寸/间距差异通常很难捕捉到。您可以做的是创建一个特定于Linux的CSS文件,其中包含针对Linux调整的这些值,然后执行一个简单的基于JS的检测,以便在用户代理是Linux的情况下注入该CSS。
这可能不是最干净的方法,但它可以正常工作,并且对您干净的HTML / CSS的侵扰最少。
答案 4 :(得分:0)
除非您的网站预计基于Linux的流量超出正常水平,否则如果您“牺牲用户调整其阅读环境的能力”而不仅仅是不关心,您可能会对更多人产生负面影响关于Linux体验。
话虽如此,如果你做想要一个不错的Linux体验,你应该解决为什么你的设计在字体间距的微小变化下中断的原因,因为这些问题在当前很难控制CSS实现。