有人可以很好地解释 em 作为CSS的大小调整单元吗?
当我们使用 em 作为网站的大小单位时,为什么要使用%作为正文?为什么不为身体使用 em ?
答案 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倍。
一切都很好地扩展。