网上的各种文字声称"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)
根据"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-sizefont-size(例如<font>,<sub>,<h1>...是的,它是不合法的标记有这些元素作为父母,但它仍然会改变font-size)然后font-size是我当前所知的每个现代浏览器中的默认值16px.