【发布时间】:2016-06-29 07:36:21
【问题描述】:
CSS em 单元很棒,但有些事情总是让我烦恼,可能是因为我没有完全理解它们。
字体在每种尺寸下的渲染效果都不尽相同,在不精确的值上尤其糟糕。这就是为什么,如果你想使用em 为字体提供精确的像素值,你必须这样做(假设你没有改变正文的 16px 字体大小):
font-size: 0.875em; /* 14px */
font-size: 1.25em; /* 18px */
也许你只是想增加一点大小,但后来意识到0.9em = 14.4px,然后你害怕你的字体看起来模糊!在任何情况下,如果你给一个段落一个font-size 或1.25em (18px),然后将正文大小从16px 更改为14px,那么该段落将是17.5px。再次模糊!
假设我们正在处理常见的 1x 口粮屏幕(如桌面屏幕),例如,11.5px 字体将如何呈现?我已将它们打印在一个测试 HTML 文件上,它们看起来与 12px 字体一模一样。
这是所有浏览器都推荐的行为吗?使用 ems 时可能由字体大小决定的填充和边距等大小呢?他们也会被围捕吗?
我对 3 个市长浏览器上的效果图进行了比较。这里是:
我把它放大了一点(200%),这样更容易看到细节。在顶部,您可以看到相同文本在 14 像素(左)和 14.4 像素(右)处的呈现方式。下面,我使用差异混合模式将它们叠加在 Photoshop 上,看看是否有任何差异。如您所见,Chrome 对 font-size 进行四舍五入,并以相同的大小呈现,同时框的高度不同。 Firefox 具有相同的高度,但字体在 x 轴上的渲染略有不同,而字体的高度似乎相等。 IE 结果是一种混合。无论如何,我真的很惊讶,因为 14.4px 字体似乎根本没有模糊。
【问题讨论】: