任何人都可以很好地解释“em”是什么(CSS的大小单位)?

时间:2010-01-24 18:10:58

标签: css

有人可以很好地解释 em 作为CSS的大小调整单元吗?

当我们使用 em 作为网站的大小单位时,为什么要使用%作为正文?为什么不为身体使用 em

7 个答案:

答案 0 :(得分:13)

了解它的最佳方法是查看CSS standard

在这里,您可以看到它被定义为相关元素的字体大小,即它与元素的字体高度相关。字体大小不是任何特定字母的度量。单个字母的实际高度可以大于或小于字体大小,但通常它们会更少。来自Wikipedia

  

在数字类型中,特定字母与em的高度的关系由字体设计者任意设定。但是,作为一个非常粗略的准则,“平均”字体的上限可能是em的70%,x的高度是em的48%。

还有一点要注意,在CSS标准中:

  

此规则的唯一例外是'font-size'属性,其中'em'和'ex'值指的是父元素的字体大小。

此异常有意义,否则您将获得字体大小的递归定义。

一个常用但错误的定义是它是字母“M”的宽度。它曾经在排版中被这样定义,但是现在已经不再适用了,而且从来没有真正适用于CSS。实际上,'M'通常不比1 em宽(这取决于当然的字体)。

答案 1 :(得分:8)

编辑:我更正了:在CSS中,根据Mark Byers的回答,定义作为字体大小。

(原来,它是字母M的宽度。见http://en.wikipedia.org/wiki/Em_%28typography%29。比较ex,这是x的高度。)

答案 2 :(得分:4)

一个em应该代表1个字母M的宽度值,但实际上是当前的字体大小。

Ems是相对的,所以如果你这样做:

table { font-size: 2em }
td { font-size: 2em }

你的td中的文字大小是正文文本大小的四倍,因为表格的字体大小是正文的两倍,而td的字体大小是表格大小的两倍。

p { margin-bottom: 1em }

段落下面会有一个换行符,正好是一行文字的高度。 (字母通常比线条短,但你明白了。)

答案 3 :(得分:1)

'Em'是“用户代理正在使用的当前字体的x倍”。

这意味着,如果访问者使用10pt字体作为默认值,1em等于10pt,2em等于20pt,依此类推。

您可以在此处找到有关不同CSS单元的其他信息:http://www.w3schools.com/css/css_units.asp

答案 4 :(得分:1)

你已经从现有答案中了解了'em',但他们都没有注意到一件事。

使用em,您可以创建所谓的“弹性”化妆。这意味着如果您指定了em中的所有块大小,那么在用户按下“Ctrl +”之后,您的站点将保持其比例(或者在某些浏览器中可能是另一种组合以扩大字体大小)。

答案 5 :(得分:0)

来自Wikipedia

  

em是排版领域的一种计量单位。此单位定义字母宽度和高度相对于当前字体的磅值的比例。最初该单位来自特定字体中的大写“M”的宽度。此单元不是根据任何特定字体定义的,因此对于给定点大小的所有字体都是相同的。因此,16点字体中的1个em是16个点。

答案 6 :(得分:0)

在CSS中,“em”是一种表示相对于字体大小的大小的方法。 “1 em”表示“与当前字体框大小相同”。 “1.5 em”表示元素的大小约为字体大小的1-1 / 2倍。

一切都很好地扩展。

请参阅:CSS Lengths Unit Reference