H1在文章页面 – 网站标题或文章标题?
在面向文章的页面(例如博客文章)中, <h1>
元素(1级标题)通常用于标记:
- 博客标题(即页面顶部的常常大的站点标题, 而不是
<title>
元素),或者 - 文章标题
什么是最好的select,为什么?
对于网站所有者而言,他们可能想向全世界喊出他们网站/博客的名字,在网站标题周围使用1级标题似乎是有道理的。
从您尝试与用户沟通的angular度来看,网站标题的相关性较低 – 文章内容就是您要传达的内容,而所有其他网站内容都是次要的。 因此,使用<h1>
作为文章标题似乎是最好的。
我觉得<h1>
元素应该专注于文章标题,而不是网站标题或其他内容。 这似乎并不是一个受欢迎的惯例。
例子:
- Joel Spolsky使用
<h1>
作为文章标题,并为网站标题定位 - Jeff Atwood 完全不使用
<h1>
,<h2>
使用文章标题和网站标题的锚点 - 37信号SVN使用
<h1>
作为站点标题和文章标题的锚点
这是三个站点的三种不同的方法,您可能希望强调正确的语义标记。
我认为乔尔和杰夫差不多。 我非常惊讶37Signals人员的标记select。
对我来说,这似乎是一个非常简单的决定:什么是最相关的文章的消费者? 文章标题。 因此将文章标题包装在<h1>
元素中。 完成。
我错了吗? 我错过了更多的考虑吗? 我对吗? 如果是这样,为什么' <h1>
的文章标题'方法不是更常用?
决定使用<h1>
元素的地方像我说的那样是不变的? 还是有一些主观的考虑要做呢?
更新 :感谢迄今为止所有的答案。 对于如何使用<h1>
作为文章标题而不是使用网站标题来获得可用性和可访问性(或者不是,视情况而定),我真的很感激。 基于事实而不是个人假设的答案将获得许多奖励点!
有关于此主题的W3C质量保证小贴士 :
<h1>
是文档一级标题的HTML元素:
如果文档基本上是独立的,例如在日内瓦看事物,那么顶层标题可能与标题相同。
如果它是一个集合的一部分,例如关于宠物页面集合中的狗的部分,则顶层标题应该承担一定量的上下文; 只要在标题应该在任何情况下工作,写
<h1>Dogs</h1>
:狗 – 您的宠物指南。
作为屏幕阅读器用户,只要标题一致,标题级别无关紧要。 不同的博客使用不同的约定,所以没有标准的方法使其更容易访问。 确保标题与内容级别匹配更重要,那么使用什么级别的标题。 例如,如果显示一系列具有评论的博客文章,则所有博客文章都可以具有标题级别2,并且在评论开始时可以具有标题级别3.对于易于导航标题的示例,可以find具有多个部分的任何维基百科文章,小节。 我可以轻松地跳过主要部分,通过使用我的屏幕阅读器导航标题function跳转到任何2级标题,如果我想移动到给定部分的小节,我将导航到下一个标题。
在您的博客的主页上,我将使用H1来表示站点标题,H2表示发布在首页上的各个博客文章的标题。
但是,在input特定文章时,我会使用H1作为文章标题和网站标题的锚点。
这是一个很好的语义设置,当Google抓取您的网站时,它也会受到赞赏。
在Wikipedia上,h1-Tag包含文档中的文章名称和标题,以h2开头。 名字维基百科是html-header中的标题标签的一部分。 我也认为这是要走的路。 所以对于博客,我会像你给的例子中的Joel Spolsky那样做。
而且我总是以最高的水平开始,所以放弃h1在我看来是一个不好的select。
HTML页面的<head>
部分有一个名为<title>
的元素。 顾名思义,这是网站标题。
HTML用于将页面结构化为机器可分析forms,而不是布局。 如果仅仅是关于布局,你只能使用不同的class / id的<div>
和<span>
块,并将CSS应用到它们。 代替
<h2>Sub Header</h2>
我可以使用
<div class="header2>Sub Header</div>
和某处有一些CSS代码,这将使这个<div>
看起来像h2(字体大小,粗体字体等)。 不同的是,一台计算机无法知道我的<div>
实际上是第一个例子中的二级标题(应该怎么知道呢?我可能会把它命名为“header2”),但是在第一种情况下,它知道它是一个二级标题,因为它是一个<h2>
元素,如果它想向用户显示一个页面的结构化列表,它可以这样做
- 顶级标题
- 小标题
- Sub Sub标题
- 小标题
- 小标题
- 小标题
- 顶级标题
- 小标题
- Sub Sub标题
- Sub Sub标题
- 小标题
:
- 小标题
通过searchH1 / H2 / H3 / …元素并像上面那样构build它们。 所以如果一台电脑试图找出一个页面的标题,它会在哪里查找它? 在名为<title>
的元素中还是名为<h1>
的元素中? 想一想,你有你的答案。
当然,你可能会说“但标题是不可见的页面”。 那么,它通常在浏览器窗口的某处(窗口标题或至less标签标题)可见 – 但是,您可能希望它也可以在页面上看到 – 我可以理解。 但是,这是怎么说呢? 谁说你可能不重复? 但是我想知道你是否应该使用h1元素。
<html> <head> <title>SOME TITLE</title> </head> : <body> <div id="title">SOME TITLE</div> : </body> </html>
使用CSS以你喜欢的方式来设置#title
的样式。 使它超级大,超级大胆,有一个醒目的颜色,如果你喜欢,没有什么说话反对它。 自动页面parsing器通常在某种程度上忽略了div和span,因为它没有告诉他们(这些元素是用来为阅读器布局页面的元素,但是他们对页面的结构没有提到任何内容, 布局不是结构化的 ,只能应用风格到某些结构元素来生成布局,但不应该与另一个混淆)。 还有一台电脑会知道页面的标题是什么,它知道标题元素。
对于一个典型的网站,例如博客, h1
应该包含网站标题。 是的,在网站的每一页上。
为什么? 在一个网站中,有各个网页共享的部分。 以导航为例:
<ul id="site-navigation"> <li><a href="/">Home</a></li> <li><a href="/about">About me</a></li> <li><a href="/contact">Contact</a></li> </ul>
这个#site-navigation
在站点的每个页面上重复。 它代表网站导航,而不是页面导航。 差异很重要! {页面导航可以是一个目录(如在维基百科文章中)或长篇文章的分页。}
如果您将文章标题用作h1
,则网站导航将位于此标题的范围内。
<body> <div>John's blog</div> <!-- the site title --> <h1>My first blog post</h1> <!-- the article title --> <p>…</p> <h2>Navigation</h2> <ul id="site-navigation">…</ul> <!-- the site-wide navigation --> </body>
所以这个标记expression了:导航(→由h2
开始)是文章的一部分(→由h1
开始)。 但是这不是真的,这个导航不是文章的导航。 链接真的是整个网站的一部分,网站是由网站标题。
当文章包含子标题时问题变得更清楚:
<body> <div>John's blog</div> <!-- the site title --> <h1>My first blog post</h1> <!-- the article title --> <p>…</p> <h2>Why I'm blogging</h2> <p>…</p> <h2>Why you should read my blog</h2> <p>…</p> <h2>Navigation</h2> <ul id="site-navigation">…</ul> <!-- the site-wide navigation --> </body>
正如您所看到的,无法从导航中区分文章子标题。 它看起来像文章有三个小标题:“为什么我在写博客”,“为什么你应该阅读我的博客”和“导航”。
因此,如果我们使用h1
作为网站标题,而使用h2
作为文章标题,则导航也可以在网站标题的范围内,也可以使用h2
:
<body> <h1>John's blog</h1> <!-- the site title --> <h2>My first blog post</h2> <!-- the article title --> <p>…</p> <h2>Navigation</h2> <ul id="site-navigation">…</ul> <!-- the site-wide navigation --> </body>
现在这个标记传达了:有一个网站叫做“约翰的博客”(→由h1
开始),它包含一篇文章(→由第一个h2
开始)和一个网站导航(→由第二个h2
开始)。 当然,这篇文章的h3
现在是h3
。
使用h1
作为文章标题的另一个问题是, 在第一个标题之前通常有内容,例如包括网站标题和其他内容的网站标题。 对于通过标题进行导航的用户来说,第一个内容将是“不可见的”。 所以最好给每个单独的块分配一个自己的标题。
HTML5使用分段/大纲algorithm将其正式化。 它解决了你可能使用HTML 4.01时遇到的许多问题,因为内容顺序现在可以(大部分)是免费的,如果你不想“发明”实际的标题,这要感谢section
/ article
/ nav
/ aside
。 但是在HTML5中,网站标题应该是h1
,它是body
的小孩,但不是任何分段元素/根的孩子。 所有其他部分都在本网站标题的范围内。
H1在文章页面 – 网站标题或文章标题?
都。 本文是资料性的: 关于HTML5时代的多个H1标签的真相 。
应该只有一个,只有一个
H1
; 通常这是页面标题。 那么它应该遵循h2,h3等
所以你的页面可以像这样(没有所有其他的html标签)
H1 H2 H2 H3 ..等等