我说的是正确的语义标记。
我知道通常没有理由不从 h1 开始,然后从那里往下走。
但是,如果我正在构建类似侧边栏的东西,它有自己的独立层次结构,那么最佳实践是什么?我知道我可以从 h1 开始并使用 css 规则来区分侧边栏 h1 和主 h1,但如果我从 h3 开始,可能会有更好的机会,我不必写那么多 css,因为它会直接匹配,或者至少更接近于主要的 h3。
同时,这不是严格意义上的语义,是吗?
这里有最佳实践吗?(我主要关心屏幕阅读器看起来最好的东西)
我说的是正确的语义标记。
我知道通常没有理由不从 h1 开始,然后从那里往下走。
但是,如果我正在构建类似侧边栏的东西,它有自己的独立层次结构,那么最佳实践是什么?我知道我可以从 h1 开始并使用 css 规则来区分侧边栏 h1 和主 h1,但如果我从 h3 开始,可能会有更好的机会,我不必写那么多 css,因为它会直接匹配,或者至少更接近于主要的 h3。
同时,这不是严格意义上的语义,是吗?
这里有最佳实践吗?(我主要关心屏幕阅读器看起来最好的东西)
有些人认为跳过标题级别是不好的做法。这种观点是如此普遍,以至于它实际上在HTML 4.01 规范中被提及(参见绿色文本)。但规范并没有说你不应该跳过关卡。
事实上,HTML5 规范甚至包含一个示例,其中所有标题都是,使用新标签<h1>
相互区分。<section>
几年前这看起来很疯狂。
我仍然认为在其中至少<h1>
包含一篇文章标题是一种很好的做法。但是侧边栏通常不需要任何特定级别的标题。没有人关心——甚至搜索引擎——不管你是从侧边栏开始<h1>
还是从<h4>
侧边栏开始。只要确保有某种层次感,以帮助人们使用屏幕阅读器。除此之外,做任何你想做的事。
当您考虑标题时,请忽略 CSS 和样式。这完全取决于页面标题的重要性。
就我个人而言,我最多会从大约开始一个侧边栏标题h3
,有些甚至从h5
. 文档中标题的权重应确定相应的级别。例如,一个相当不重要的标题“导航”不应该是h1
.
对于 Google 和其他搜索引擎来说,如果“导航”和“我的惊人标题”都是h1
s,它们同样重要,但语义上并非如此。
一旦确定了标题的语义级别,您就可以深入研究并使用 CSS 设置样式,以获得您认为适合您的设计的大小。他们真的应该为所有标题设置相同的默认字体大小,以免开发人员产生错误的印象。
依赖。我认为一些搜索引擎认为 h1 比 h2、h3 等更重要。但是对于编码来说这并不重要。
我认为使用 CSS 后代将是推荐的方式。不要担心编写“太多”的 CSS。使用 CSS 定义布局越明确,它就越灵活。我会使用侧边栏 ID 作为主要选择器。
<style>
h1 {
font-size: 2em;
}
#sidebar h1 {
font-size: 1.1em;
}
</style>
并在代码中这样定义它:
<div id="sidebar">
<h1><!-- sidebar H1--></h1>
</div>
<h1>Page Title</h1>
此外,出于可访问性的原因,我建议h1
仅使用一次,仅将其用于主要内容的标题。同样,使用h2
-h6
仅用于内容副标题。role
(有关特定于菜单的标记,请参见 WAI-ARIA )。
您可以使用列表,然后使用类在 CSS 中格式化它们,即使这也不是很语义:
<ul>
<li class="level1">Level 1</li>
<li class="level2">Level 2</li>
</ul>
<style>
.level1 { font-size: 1.2em; }
.level2 { font-size: 0.8em; }
</style>
段落标签可能更具语义:
<p class="level1">Level 1</p>
<p class="level2">Level 2</p>
<style>
.level1 { font-size: 1.2em; }
.level2 { font-size: 0.8em; }
</style>