CSS 样式表
h1 { font-size: 2em; }
.smaller { font-size: 0.5em; }
HTML
<h1>Hi, I am a <span class="smaller">toad</span></h1>
单词“toad”将是0.5倍的16像素(浏览器标准字体大小)还是0.5倍的2 em(h1的字体大小)?
这是与“font-size”属性一起使用时应用于元素的计算值相等。继承向下运行文档树。
回答您的问题,它将是2em的0.5倍,而2em又将是h1父元素的计算字体大小的两倍。哇。
还要注意,如果在其他CSS属性(例如width
或height
)上使用em
,则结果将从应用width
或height
的任何元素的计算font-size
计算而来,等等...
以下文章在我看来描述了em
单位的使用和上下文相当不错,以及其他阅读材料和资源... rem
单位也可能会使您感兴趣。
您还可以查看此Fiddle,以了解其更清晰的操作方式:
font-size
设置为16px
,并且您在其中嵌套了5个div,并在最后一个div上将字体大小设置为2em
,则其计算出的font-size
将为32px
。 - Seerem
是表示元素字体大小的单位,除非在font-size
属性的值中使用时,此时它表示父元素的字体大小。因此,在所示例子中,上下文是父元素。
在所示例子中,“toad”单词的字体大小等于h1
标签的父元素的字体大小。从所提供的数据中不能推断出具体的数值。
计算字体大小时,处理这个结构时,h1
标签的父元素的字体大小已经计算好了; 让我们称其为s。首先计算h1
标签的字体大小,将s(父元素的字体大小)乘以2。然后计算span
标签的字体大小,将其父元素的字体大小乘以0.5,得到s。理论上,舍入误差可能会导致最小的偏差,但可以假定在计算机中2和0.5的乘法是精确的。
在这个上下文中,它将是h1元素2em的0.5倍。
如果要让它相对于16px,您首先需要将h1的父元素设置为字体大小16px。
.wrapper {font-size: 16px;} h1 {font-size: 2em;} .smaller {font-size: 0.5em;}
<div class="wrapper"><h1>Hi, I am a <span class="smaller">toad</span></h1></div>
因此,在这种情况下,
请注意,em是相对于当前字体中M字符高度为基础的上下文的相对度量。 因此,就所有意图而言,h1具有32px大小,span.smaller具有16px大小。
rem
单位代替 em
,以相对于浏览器基础 font-size
进行设置(当然,这会涉及到浏览器支持的问题)。 - Luca它取决于父元素像素大小。如果您的父元素像素大小为16px
.5em
将等于基础像素的一半,因此为8px
,2em
用于h1将等于32px
。
这完全取决于您在CSS中设置父元素像素大小的方式。