css - em 使用 ceil 或 floor 转换为 px,css 规范在哪里?

标签 css

我知道em是字体大小的相对大小, 问题是,当 font-size * em 不是整数时, 比如font-size: 12px * 1.4em = 16.8px,结果是16px还是17px? 我在哪里可以找到关于此的规范?

最佳答案

它在 CSS2.1 规范中有描述:http://www.w3.org/TR/CSS21/fonts.html#algorithm

正文如下:

4.'font-size' must be matched within a UA-dependent margin of tolerance. (Typically, sizes for scalable fonts are rounded to the nearest whole pixel, while the tolerance for bitmapped fonts could be as large as 20%.) Further computations, e.g., by 'em' values in other properties, are based on the computed value of 'font-size'.

所以回答你的问题:16.8px 可以映射到 17px,但最终由客户端 UA 决定如何呈现文本。如果显示器具有逻辑子像素(如 Apple 的 Retina 显示器,其中 1 个 CSS 像素实际上是 2x2 个真实像素),那么您可以使用非整数像素字体大小。

编辑:我想我误解了规范,因为现代用户代理能够将文本呈现为任意大小,甚至是非整数像素大小。 CSS2 规范可以追溯到 1998 年,当时计算机上的排版与今天不同(例如,我不相信您可以强制 IE5 呈现 12pt 和 14pt 之间的文本)。所以我想这不再重要了,就好像你让现代浏览器渲染 0.5px 的文本一样,它实际上会给你一个漂亮的模糊 Blob 。

关于css - em 使用 ceil 或 floor 转换为 px,css 规范在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13596699/

相关文章:

html - CSS 绝对定位。 IE9/8 对比 FF/Chrome/IE7

css - WordPress z-index 也许

html - 有滚动条但是页面没有滚动

javascript - 如何在移动浏览器中加载页面时在所选元素中显示长字符串

html - 关于 CSS/HTML

html - CSS:当容器太窄而无法完整显示时隐藏元素

Javascript 自定义表格列的能力。允许用户删除和添加新列的按钮

html - 是否可以在 css 样式表中嵌入字体,而不是在每个网页上定义字体?

css - 更改material-ui中Grid Item堆叠的顺序

css - 如何通过CSS内容添加美元符号