一个关于css中font-size继承性的问题?

我在body中定义了字体为font-szie:12px;可是为什么子元素们显示的字体大小都不是12px呢。我也知道font-size是继承的计算值。可是那不是指以em为单位的情况吗?

你应该知道font-size中还有这几个相对值吧(%,em,xx-small,x-small,small,medium,large,x-large,xx-large),这些相对值大小取决于父元素定义的font-size。

各个浏览器对每种标记(比如p,h1,h2等等)预定义的大小都有所不同,但可以肯定的是都是相对值。

也就是说对body指定一个font-size的绝对大小如12px,那么body的子元素p在未指定的情况下会使用浏览器预定义的font-size,举例说是medium或者1em,这时p的实际大小应该是12px;而h1(预定义可能是xx-large)实际就会是24px
对body指定不同的大小,子元素会具有相应比例的大小

要想统一所有的元素大小,可以通过这样指定:
body,p,h1,h2,h3,h4,h5,h6 { font-size:14px; }追问

意思就是说,给body指定绝对大小12px,那它的子元素继承的实际大小就是=浏览器预定大小×12px吗?

追答

你大概理解到了,但不完全对。还是举具体的例子吧,比如chrome浏览器:
body的预定义没找到,看样子像16px
p没有预定义,那么用的是css定义font-size的默认值medium,实际大小是16px
h1预定义为2em,即两个字符大小,实际是16x2=32px

如果指定body{ font-size:12px; }
p实际是12px,h1实际是24px

xx-small,x-small,small,medium,large,x-large,xx-large以及我忘记的smaller和larger都是标准的相对值大小,在过去的浏览器里很有用。但是现在每种浏览器对各个级别的放大倍数都不一样,所以很少用

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-12-04
font-size是设置字体的一个css样式,其值可以为:px或者em;
继承方式是根据父元素来定的,如果父元素已经定义了字体大小,子元素没有设置字体大小,那么会默认使用父元素的font-size值,也可以单独给某一个元素设置其值
第2个回答  2011-11-18
你在body中定义font-szie以后你在body中得所有未重新定义font-szie属性的div都将继承font-szie:12px;的属性!
至于继承的单位是看你当时定义的单位来计算的!你写的是12px;继承的时候就是px的单位!追问

问题是它们的字体大小不是12px。

追答

body{
font-szie:12px;
}
你是这样写的吗?前面不能加.的