即使是HTML,我也是HTML5的新手。 我的混淆是关于HTML代码使用的标题,这是我的代码片段:
<body>
<header>
<h1>Text A</h1>
</header>
<section>
<h1>Text B</h1>
<article>
<header>
<hgroup>
<h1>Text C</h1>
<h2>Text C2</h2>
</hgroup>
</header>
好的,让我们谈谈这个话题,我的问题是;
&lt; h1&gt;在&lt; header&gt;内标题&lt; body&gt;比&lt; h1&gt;大得多的部分在&lt; section&gt;内比&lt; h1&gt;大得多的部分。在&lt; article&gt;里面并且&lt;部分&gt;部分。换句话说:文本A&gt;文字B&gt;文本C,尽管他们使用相同的标题。
为什么文本C2比文本C大得多,而文本C2使用&lt; h2&gt;而文字C使用&lt; h1&gt;他们在同一个地方?
是某种错误吗?顺便说一句,我使用Firefox浏览器。提前谢谢。
答案 0 :(得分:4)
h1
的默认规则如果在section
内,则会有所不同。这是设计的。请参阅以下默认Chrome&#34;用户代理&#34;规则:
:-webkit-any(article,aside,nav,section) h1 { font-size: 1.5em; }
以上内容会覆盖h1
的默认Chrome规则,即
h1 { font-size: 2em; }
您可以指定自己的h1
规则,该规则将覆盖上述规则,因为您自己的规则的优先级高于用户代理规则:
h1 { font-size: 2em; }
这与绝对字体大小和相对字体大小无关,也与继承的字体大小无关。 h1
内的section
较小,因为它继承自section
,因为section
没有内置字体大小。
Text C2
大于Text C
的原因是上述默认规则仅适用于h1
元素中的article
元素,但不适用于h2
,出于浏览器开发人员最熟悉的原因。您可以通过检查您喜欢的DOM /样式检查器中的级联来看到这一点。
顺便说一句,上面的:-webkit-any
是一个特定于Chrome的伪类,可以匹配任何封闭的选择器,因此它可以帮助您免于编写article h1, aside h1, nav h1, section h1
。在FF中,等效值为:-moz-any
。这不是标准的,在CSS4中将实现为:matches
伪类。
答案 1 :(得分:3)