【问题标题】:Default reference font-size of em? [duplicate]em 的默认参考字体大小? [复制]
【发布时间】:2017-05-14 09:53:46
【问题描述】:

em 的默认参考字体大小是多少?是html还是body?我在 SO 中搜索了答案,但找不到答案。

【问题讨论】:

  • 听说16px是1 em,需要设置body font-size:16px
  • 单位说明 em - 相对于元素的字体大小(2em 表示当前字体大小的 2 倍)

标签: html css


【解决方案1】:

em 没有默认字体大小,em 继承父级字体大小的值,例如,如果你有一个 div 里面有一个段落并且 div 的字体大小设置为 18 px,那么你设置字体- 段落的大小为 0.5 em,在这种情况下,字体大小将为 9px,因此它将取决于 parent 的元素字体大小。

如果父元素是浏览器窗口,则字体大小默认为 16 像素,因此此处的 1em 将等于 16 像素

看看我在比较 CSS 单元之前写的 this 文章

【讨论】:

  • 所以如果我从不设置任何字体大小 em 将继承自 html?
  • 在大多数浏览器中正好是 16 像素
【解决方案2】:

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>

【讨论】:

  • 所以如果我从不设置任何字体大小 em 将继承自 html?
  • 是的。它是在浏览器中预定义的(称为用户代理样式表)。确切地说是 16 像素。您可以在开发者工具中查看(按 f12 打开)
【解决方案3】:

大多数主流浏览器都将标准文本设置为默认字体大小 16 像素。

来自MDN

如果你没有在页面的任何地方设置字体大小,那么它是 浏览器默认,通常是 16px。

它继续说:

因此,默认情况下 1em = 16px,而 2em = 32px。如果你设置一个font-sizebody 元素上的 20px,然后 1em = 20px 和 2em = 40px。注意 值 2 本质上是当前 em 大小的乘数。

是否在bodyhtml 元素上声明初始字体大小由浏览器制造商自行决定。 W3C 推荐的 default style sheet 没有指定元素(甚至没有指定字体大小)。

【讨论】:

  • 你认为this 是一个合适的副本吗?
猜你喜欢
  • 2010-09-13
  • 2019-10-05
  • 1970-01-01
  • 2012-05-14
  • 1970-01-01
  • 1970-01-01
  • 2023-03-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多