如果我font-size
在body
元素上设置 a,那么该大小也会是 1em 吗?
换句话说,如果我这样做:
body {
font-family: Arial;
font-size: 16px;
}
我可以确定我使用 1em 的任何地方都等于 16px 吗?
如果上述方法不正确,我还应该如何设置基本字体?
抱歉,如果基本字体不是正确的术语。我不确定这种技术被称为什么。我相信它类似于重置样式表,它会覆盖浏览器的默认样式。
您希望实现的目标可以使用 rem 单位来完成。
一个 em 单位是“等于使用它的元素的 'font-size' 属性的计算值”。body
在您的情况下,元素上的 1em 将是 16px 。但是,如果您更改font-size
任何元素1em
上的 ,则该元素上的 将等于该font-size
元素的 。如果你使用 ems on font-size
,它是相对于font-size
父元素的。因此,如果p
是 的孩子div
,并且font-size
ondiv
是12px
,那么font-size: 1em
onp
将是12px.
另一方面,a1rem
总是等于根元素的 font-size 的计算值。在 HTML 中,这是html
元素。因此大小总是一致的。见http://www.w3.org/TR/css3-values/#rem-unit
如果您font-size
为一个元素设置 ,那么(假设将应用您的 CSS 规则)该em
单元具有该元素的该值。
你不能改变em
它在 CSS 中的含义:它表示使用它的元素的字体大小(除非在font-size
声明或font
简写中使用,它表示父元素的字体大小)。
设置em
为固定值会破坏该单元的目的:它意味着根据上下文和设置而变化。如果您想设置em
为16px
,那么只需使用px
单位而不是em
单位。如果您认为数字太大,您可以使用pc
(pica) 单位:由CSS3 Units和在浏览器实践中使用1pc
= 12pt
= 16px
。
在定义 font-size 属性时,anem
等于应用到相关元素父级的字体大小。如果你没有在页面的任何地方设置字体大小,那么它是浏览器默认的,大概是 16px。
因此,默认情况下1em = 16px
和2em = 32px
。如果你在 body 元素上设置了 20px 的字体大小,那么1em = 20px
和2em = 40px
.
请注意,值 2 本质上是当前 em 大小的乘数。