html - 为什么 H2 比 H1 大?

标签 html

在下面的代码片段中,为什么H2内容比H1内容大?

<article>
    <section>
    <header>
        <h1>First Header</h1>
    </header>
    </section>
    <section>
    <header>
        <h2>Second Header</h2>
    </header>
    </section>
</article>

http://jsfiddle.net/abugp/

为什么 H1 内容在下面的代码片段中比上面的大?

<h1>First Line</h1>
<h2>Second Line</h2>

http://jsfiddle.net/59T43/

最佳答案

由于您没有指定任何样式,标题的大小由浏览器的默认样式表决定。特别是,这意味着两个 header 的相对大小可能会因查看者的浏览器而异。

看看你在 Chrome 33 中的 fiddle ,我确实看到了你描述的效果。右键单击标题并选择“检查元素”显示问题是由 <article> 的存在引起的。和/或 <section>标题周围的标签。

特别是,Chrome 的默认样式表通常包含以下规则:

h1 { font-size: 2em }

和:

h2 { font-size: 1.5em }

然而,之前的规则在<article> 中被覆盖了和/或 <section>按照一些更具体的规则来标记,大概是为了让章节标题比普通的“整页”标题更小:

:-webkit-any(article,aside,nav,section) h1 {
    font-size: 1.5em;
}

:-webkit-any(article,aside,nav,section)
:-webkit-any(article,aside,nav,section) h1 {
    font-size: 1.17em;
}

非标:-webkit-any(...)选择器可能只匹配括号内列出的任何标签。结果是任何 <h1> <article> 内的标题, <aside> , <nav><section>标签缩小到正常大小 <h2>标题和任何<h1>两个 中,这样的标签进一步缩小,大概缩小到正常 <h3> 的大小。左右。

至关重要的是,Chrome 默认样式表没有<h2> 有任何此类特殊规则标签,因此它们将始终(无论如何在 Chrome 33 中)以相同的大小显示。因此,当被两个或更多 <article> 包围时和/或 <section>标签,<h1>变得小于 <h2> .

关于html - 为什么 H2 比 H1 大?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22898559/

相关文章:

javascript - div 内容中的 Jquery 正则表达式

html - 为大屏幕和小屏幕尺寸调整 flexbox 网格

html - 有哪些优化网络图像的好方法? (Figma 线框到代码)

css - 如何在嵌入 html 的 youtube 视频中隐藏播放/暂停按钮和进度条?

javascript - 网站关闭页面后如何显示通知?

javascript - 将 JS 数组转换为 HTML 表 |奇怪的 <tbody> 标签?

html - 如何处理在 HTML 表单中选择了哪个按钮?

javascript - 检查对象何时触及 Canvas 边框并执行其他动画

html - IE 中 colspan > 1 的 td 元素的 CSS 规则

javascript - jQuery Page 在单页中按下按键时每次向下滚动