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