我知道很多人已经开始使用 作为项目中的单位了。但是遗憾的是,在 ChromeOpera 上,如果我们给 body 元素应用了 rem,那么这个取值将会计算错误。

因为大部分浏览器的默认字号都是 16px,所以 html 的字号计算出来应该是 16px * 62.5% = 10px。此时,我们预期 bodyfont-size 为 。然而实际情况与我们想象的不太一样,最终 body 的计算值并不是 14px,它忽略了 html 的定义,而是直接使用了浏览器的默认字号作为参照。于是最终计算值为:16px * 1.4rem = 22.4px。测至 chrome 45.0Opera 33.0 仍然存在这个问题,不过 chrome 49.0Opera 37.0 看起来已经被修复了。

  1. body {
  2. }

由于 bodyhtml 的直接子元素,所以此时对 body 使用 emrem 的效果是相同的。