【问题标题】:Using fractional em's in CSS's font-size property在 CSS 的 font-size 属性中使用小数 em
【发布时间】:2011-12-01 04:41:51
【问题描述】:

说,我定义了以下 CSS 规则:

.className {
font-size:0.89em;
}

我的问题是,在为实际支持它的浏览器指定 'em's 并为 em 值的小部分变化以不同方式呈现字体大小的同时,我可以对分数“深入”到什么程度?

【问题讨论】:

  • 他们似乎很深入,我没有任何可以提供的确切数字,但请查看pxtoem.com 之类的内容,然后随便玩玩。你会看到他们可以做任何事情。我以前见过像 0.631111111111111em 这样的 em 设置并且它们有效。不过,这是否与 0.63em 有明显不同是不太可能的。
  • 非常好。似乎大多数主要浏览器都会以不同的字体大小呈现 em 值的微小变化。你为什么不把它作为答案发布,我会检查它是否正确。
  • 最终,最小的比例单位是1px,对吧?
  • @JohnB 好吧,我不是在谈论那种极端情况))对我来说,我很好奇,比如说,0.89em 的渲染是否与 0.88em 不同等等。
  • 我很想看看是否有人有更好、更完整的答案。我会给它一天左右的时间。

标签: css font-size em


【解决方案1】:

但应记住,小数 em 值与所有浮点数一样,容易出现舍入误差。

我在设置媒体查询边界时发现了这一点,其中一个最大宽度与另一个最小宽度相距 0.00001em,并且它被四舍五入并且两个查询都被激活。将差异更改为 0.001em 后,查询完全按预期工作。

【讨论】:

    【解决方案2】:

    JohnB 是对的。无论我们使用什么尺寸单位,我们仍然以像素为单位进行渲染,并且 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 显示!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-09-06
      • 2014-11-05
      • 1970-01-01
      • 2022-07-01
      • 2018-10-18
      • 1970-01-01
      • 2015-01-27
      相关资源
      最近更新 更多