比如说,我定义了以下 CSS 规则:
.className {
font-size:0.89em;
}
我的问题是,在为实际上支持它的浏览器指定 'em's 并为 em 值的小部分变化以不同方式呈现字体大小的同时,我可以去多“深入”到分数?
约翰B是对的。无论我们使用什么尺寸单位,我们仍然以像素为单位进行渲染,并且 ems 的微小变化不会改变显示的尺寸:
例如,对于最初以 20px* 高度显示的文本,我们可以看到,当添加规则使其变为原始高度的 0.99em 时,没有有效的变化:
20 * 0.99 = 19.8
浏览器无法显示 0.8 像素,因此(假设它会四舍五入)它仍会将其显示为 20px 高。
尽管看起来浏览器并不总是按预期四舍五入:
http://meyerweb.com/eric/thoughts/2010/02/10/rounding-off/
http://ejohn.org/blog/sub-pixel-problems-in-css/
*是的,我知道 20px 的字体大小并不总是意味着它以 20px 显示!
但应记住,小数 em 值与所有浮点数一样,容易受到舍入误差的影响。
我在设置媒体查询边界时发现了这一点,其中一个最大宽度与另一个最小宽度相距 0.00001em,并且它被四舍五入并且两个查询都被激活。将差异更改为 0.001em 后,查询完全按预期工作。