font-size的默认单位?

ken*_*ken 9 css

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

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

任何见解将不胜感激.

<div style="font-size: 20;">20 size</div>
<div style="font-size: 20px;">20px size</div>
<div style="font-size: 20pt;">20pt size</div>
Run Code Online (Sandbox Code Playgroud)

zzz*_*Bov 8

根据"CSS字体模块级别3",font-size属性可以具有以下值:

值:<absolute-size> | <relative-size> | <length> | <百分比>

<absolute-size>,<relative-size>以及<percentage>在同规格定义,都是或者关键字(例如small,larger等),或者有个单位.

<length>更通用的定义在"CSS值和单位模块级别3"中:

长度是指距离测量值,在属性定义中用<length>表示.长度是一个维度.但是,对于零长度,单元标识符是可选的(即可以在语法上表示为<number> 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.

  • 你有被忽略的参考吗?不是我怀疑你,我只是好奇我/我为什么在规范中错过了这个(如果它甚至在那里). (2认同)