【发布时间】:2017-05-14 09:53:46
【问题描述】:
em 的默认参考字体大小是多少?是html还是body?我在 SO 中搜索了答案,但找不到答案。
【问题讨论】:
-
听说16px是1 em,需要设置body font-size:16px
-
单位说明 em - 相对于元素的字体大小(2em 表示当前字体大小的 2 倍)
em 的默认参考字体大小是多少?是html还是body?我在 SO 中搜索了答案,但找不到答案。
【问题讨论】:
em 没有默认字体大小,em 继承父级字体大小的值,例如,如果你有一个 div 里面有一个段落并且 div 的字体大小设置为 18 px,那么你设置字体- 段落的大小为 0.5 em,在这种情况下,字体大小将为 9px,因此它将取决于 parent 的元素字体大小。
如果父元素是浏览器窗口,则字体大小默认为 16 像素,因此此处的 1em 将等于 16 像素
看看我在比较 CSS 单元之前写的 this 文章
【讨论】:
em 的参考字体大小是您为其定义大小的最后一个父元素。你也可以这样说:em 单位是相对于元素的当前大小的。
你可以看到两个sn-p的区别。在第二个中,<p> 的字体大小是第一个的两倍。
body{
font-size:10px;
}
p{
font-size:2em;
}
<body>
<div class="container">
<p>Text</p>
</div>
</body>
body{
font-size:10px;
}
.container{
font-size:20px;
}
p{
font-size:2em;
}
<body>
<div class="container">
<p>Text</p>
</div>
</body>
【讨论】:
大多数主流浏览器都将标准文本设置为默认字体大小 16 像素。
来自MDN:
如果你没有在页面的任何地方设置字体大小,那么它是 浏览器默认,通常是 16px。
它继续说:
因此,默认情况下 1em = 16px,而 2em = 32px。如果你设置一个
font-size的body元素上的 20px,然后 1em = 20px 和 2em = 40px。注意 值 2 本质上是当前 em 大小的乘数。
是否在body 或html 元素上声明初始字体大小由浏览器制造商自行决定。 W3C 推荐的 default style sheet 没有指定元素(甚至没有指定字体大小)。
【讨论】: