2016-12-30 141 views
2

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

+0

我听到16px的是1个EM,则需要设置体字体大小:16px的 –

+0

单位\t说明 EM \t - 相对于元素的字体大小(2em的表示当前字体的大小的2倍) – lisarko8077

回答

2

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

MDN

如果您还没有设置字体大小的页面上的任何地方,那么它是 浏览器的默认,这往往是16像素。

它继续说道:

所以,在默认情况下1EM = 16px的,和2em的= 32PX。如果您在body元素上设置了font-size, 20px,则1em = 20px和2em = 40px。请注意, 值2本质上是当前em大小的乘数。

无论初始字体大小的bodyhtml或元件上声明是在浏览器制造商的判断。 W3C推荐的default style sheet没有指定一个元素(或者甚至字体大小)。

+1

你是否认为[this](http://stackoverflow.com/questions/10470727/what-is-an-em-if-the-font-size-of-the-document-is-specified-in- ems)是一个合适的重复? – BoltClock

0

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

的情况下,父元素是浏览器窗口的字体大小默认将是16像素所以1EM将在这里等于16px的

this文章一看我比较CSS单位以前写

+0

所以如果我从来没有设置任何字体大小的EM将继承自HTML? – user7339197

+0

究竟是在大多数浏览器中为16像素 –

0

em的参考字体大小是您为其定义大小的最后一个父元素。您也可以这样说:em单位相对于元素的当前大小。

您可以在两个片段中看到区别。在第二个中,<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>

+0

所以如果我从来没有设置任何字体大小的EM将继承自HTML? – user7339197

+0

是的。它在浏览器中被预定义(它的被称为user-agent样式表)。确切的说是16 px。你可以在开发者工具(按f12打开它们)看看它 – ab29007

+0

如果它有帮助,那么请接受我的答案。谢谢 – ab29007