【发布时间】:2014-01-14 18:15:31
【问题描述】:
在 Chrome(版本 31.0.1650.63 m)中使用 em 单位时遇到问题。
在 Chrome 中使用 JSFiddle 会产生不正确的输出(与 Firefox 或 IE 相比,绿框太大):
http://jsfiddle.net/rapik/j72aZ/
HTML:
<div class="aaa">
<div class="bbb">
</div>
</div>
CSS:
.aaa {
font-size: 0.5rem;
width: 30em;
height: 30em;
background: red;
}
.bbb {
font-size: 0.1em;
width: 15em;
height: 15em;
background: green;
}
问题似乎是font-size: 0.1em 的规则,它不会使 em 小 10 倍。相反,它将 em 设置为某个最小值。 font-size: 0.1em 和 font-size: 0.2em 之间没有区别,因为两者都小于这个神奇的最小值....
这是一个错误还是我做错了什么?
这种特殊情况可以通过将“bbb”类的所有值乘以 10 来解决。但在我的情况下,事情更复杂,我需要这个 font-size: 0.1em。
我正在使用 em 单位来构建可扩展的控件。我的控件有根 div 和多个子元素。这个想法是使用 em 设置所有值,并且 em 的运行时大小由根元素的字体大小控制。如果一个元素定义了字体大小,那么它的 em 将取决于它。
如果有任何想法或建议,我将不胜感激!
更新:
以下是我所说的不同输出的屏幕截图:
【问题讨论】:
-
无法复制。 Firefox (26)、Chrome (31.0.1650.63 m) 和 Opera (Presto) 都将绿色框渲染为红色框大小的 1/4。只有 IE9 将绿色框呈现为异常小。
-
@cimmanon:哪个操作系统?我在 FF 26、Windows 7 中看到了 12x12 的绿色框。
-
我也在使用 Windows 7。
-
绿色框应该很小。我添加了插图。
-
绿色框在 Firefox 50 (Linux) 中非常小,但在 Chrome 53 (Linux) 中更大。
标签: html css google-chrome em