HTML5中的default <h5>
and <h6>
section headings的字体大小分别为0.83em
和0.67em
,而默认的<p>
字体大小为1em
。这意味着在包含<h5>
,<h6>
和<p>
标签的文本块中,这些标题将小于它们所处的文本:
(上面的默认正文字体大小是14px
)
这似乎是违反直觉的:标题应该吸引眼球并命令一个部分的开头,字体大小是一个重要的视觉提示。有没有理由为什么默认字体大小使这些标题小于它们下面的文本?
我一直在搜索W3C mailing lists,但没有发现任何关于这个决定的辩论。
这是我可以推断的:
HTML规范的第一个发布版本(在CSS发布之前)实际上是specified,h4
和h5
应该是“普通字体”大小。没有明确指定h6
的字体大小,但我认为它也是正常的字体大小。
H3 Italic, large font, slightly indented from the left margin. One or two blank lines above and below. H4 Bold, normal font, indented more than H3. One blank line above and below. H5 Italic, normal font, indented as H4. One blank line above. H6 Bold, indented same as normal text, more than H5. One blank line above.
CSS打破了现场。或者真的,一瘸一拐地走到现场和broke。浏览器specified的第一个推荐的默认样式表:
H1 { font-size: xx-large } H2 { font-size: x-large } H3 { font-size: large }
h4
通过h6
因此将是1em
。
HTML 3.2删除了相对于文档文本的任何字体大小的建议,只有recommending:
更重要的标题通常以不太重要的字体呈现为更大的字体。
这与CSS1有点冲突,但当时两者并不是彼此不可分割的。大多数样式仍然使用内联HTML属性完成,这些属性仍然非常不被弃用。
CSS2问世了,它从自己的规范中删除了一个默认样式表,而不是linked to HTML规范中的新sample style sheet for HTML 4.0。
这是明确设置为小于1em
的标头的起源,至少据我所知。推荐的HTML 4.0样式表指定了大多数浏览器将to today保留为默认值的值:
H5 { font-size: .83em; line-height: 1.17em; margin: 1.67em 0 } H6 { font-size: .67em; margin: 2.33em 0 }
和你一样,我很想在这个时候阅读一些辩论或讨论。这不是偶然的决定:低于1em
的值是故意的,特别是使文本小于其背景。
我会继续寻找你也应该!
哦,数字考古学!
因此,事实证明,您可以将其追溯到Internet Explorer 3-4和Netscape Navigator 3-4的默认“样式”(不完全是CSS!)。更具体地说,它们可能是从IE4pp2中提取的,但是在IE3中引入。不幸的是,IE /微软如何决定这些价值观的时间很少(至少是公开的 - 它可能在微软内部的电子邮件档案中可用......任何人都认识MS员工?)。
我试图重建下面的链。
正如雅各布所提到的,1997年11月的CSS2的earliest draft包括一个sample stylesheet,它将h5
定义为.83em
,h6
定义为.67em
。它还指出:
基本样式表描述了所有HTML 4.0 [HTML40]元素可视化UA的典型呈现。样式表基于对当前UA如何呈现HTML的广泛研究,并鼓励开发人员在其实现中将其用作默认样式表。
进一步挖掘,我们可以找到具有相同值的"base stylesheet",其中注意到:
我为W3C CSS2草案开发了样本样式表,但此位置的材料编辑开发没有正式的W3C状态。
...
基本样式表描述了Mosaic衍生Web浏览器(Netscape Navigator和Microsoft Internet Explorer)中所有HTML 4.0元素的“共识默认”呈现。它旨在作为编辑或“级联”其他样式表模块的基础,信息参考,HTML 4.0规范的(非官方)补充,样式表架构的练习和浏览器测试工具。基本样式表捕获现状以便超越它。
我们可以进一步跟踪这个基本样式表回到www样式的邮件列表。
em
:https://lists.w3.org/Archives/Public/www-style/1997Jul/0190.html
E. Stephen Mack指出,那时他们只想描述当前的行为,而不是规定新UAs的行为:https://lists.w3.org/Archives/Public/www-style/1997Jul/0171.html
Jay从注册表中获取IE4pp2样式:https://lists.w3.org/Archives/Public/www-style/1997Jul/0172.html
这里重要的是字体大小。看看SerifMedium
,Normal
是12
(可能是pt
),H1
,H2
,H3
,H4
,H5
和H6
分别是24
,18
,14
,12
,10
和8
。
换句话说,这些尺寸在转换为相对em
时使用“Normal”(12pt
)作为1em
,与基本样式表大小相匹配!在H5
的10/12
= .83em
,在H6
的8/12
= .67em
!
Chris Wilson,"Stylesheets guy" on the IE team指出,尽管IE4pp2附带了这些样式,IE3实际上使用了这些样式:https://lists.w3.org/Archives/Public/www-style/1997Jul/0174.html
这些样式在IE4中是硬编码的:https://lists.w3.org/Archives/Public/www-style/1997Jul/0183.html可能感兴趣的是,在那个时候,W3C endorsed a set of "Core Style Sheets"打算(?)成为一个更好的默认。这些样式表(now accessible via the Internet Archive)确实使用larger values for all headings,在h6
产生1em
,在h5
产生1.17em
。不幸的是,似乎这套样式表从未真正起飞,所以我们留下了奇怪的小h5
和h6
。
不,它只是一个默认的字体大小。通常,您使用CSS文件编辑标题,您可以在其中选择每种字体大小。