font-size的默认单位?

时间:2011-10-26 19:22:30

标签: css

网上的各种文字声称“pt”是没有提供时的默认字体大小单位,但是,我自己的测试似乎另有说明。我已经阅读了很多关于W3C的文件,涵盖了CSS 1-3的字体大小,我似乎无法在任何规范中找到对默认单元的实际引用。

我已经在Chrome和IE9中对此进行了测试,并得到了完全相同的结果:缺少单位的元素是最小的,px元素在中间,而pt元素是最大的。我尝试使用W3C定义的许多其他单位(例如“mm”,“ex”,“pc”等)匹配大小,但测试元素的 none 大小匹配目标元素(缺乏单位的元素)。

任何见解都将受到赞赏。

<div style="font-size: 20;">20 size</div>
<div style="font-size: 20px;">20px size</div>
<div style="font-size: 20pt;">20pt size</div>

1 个答案:

答案 0 :(得分:8)

根据"CSS Fonts Module Level 3" font-size属性可以包含以下值:

  

值:&lt; absolute-size&gt; | &LT;相对尺寸&GT; | &LT;长度&GT; | &LT;百分比&GT;

<absolute-size><relative-size><percentage>在同一规范中定义,并且都是关键字(ex smalllarger等)或者有百分比单位。

<length>更通用的定义在"CSS Values and Units Module Level 3"

  

长度是指距离测量值,并由&lt; length&gt;表示。在属性定义中。长度为dimension。然而,对于零长度,单元标识符是可选的(即,可以在语法上表示为&lt; number&gt; 0)。

这意味着font-size的无单位数字无效,0有明确的例外。


话虽如此,<div style="font-size: 20;">20 size</div>的大小是什么?

元素的渲染font-size将取决于很多东西。但是,如果我们能够假设

  • 用户尚未自定义其默认font-size
  • 浏览器使用默认样式
  • 没有父元素会以其他方式更改font-size(例如<font><sub><h1> ...是的,将这些元素作为无效标记作为父母,但它仍会改变font-size

然后,我当前知道的每个现代浏览器中的默认font-size都是16px