锚头内的锚,或反之亦然?

当我制作Wordpress博客时,我总是偶然发现这个(相当简单的问题)。 我是否应该将标题(也应该是链接)包裹在锚点<a>元素中,或者应该是相反的方式。 为什么?

(1)

 <a href="foo"> <h1>bar</h1> </a> 

(2)

 <h1> <a href="foo">bar</a> </h1> 

我总是最终做(1) ,因为对我来说,这似乎更符合逻辑,标题被包裹在一个链接中。

比如SEO有什么不同吗? 有最佳做法吗?

在HTML5之前:
锚点必须位于标题内部,不能将块级元素放在锚点内,如果这样,大多数浏览器将不会100%可靠地渲染它。

在HTML5中:
没关系,使用哪一个最有语义意义。 可能是第一个。

请记住,如果您的文档正在使用HTML4 DTD,则不会进行validation,并且可能无法正确呈现,因为它使用的是锚点不能包含块级元素的旧规则。 只能使用HTML5中的第一个选项。 XHTML等同于HTML4,但我并不是100%确定XHTML1.1(试试看看是否validation)。

如果您使用的是HTML 4.01 DTD(不确定是否过渡,但绝对是严格的),那么anchor元素必须出现在header元素中。 如果你不知道你正在使用哪个DTD(假设你有一个你需要的oyur代码被认为是有效的),请检查你的文档types。 HTML5的文档types如下所示:

 <!DOCTYPE HTML> 

4.01文档types是:

 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 

我也build议你熟悉DTD本身,如果你打算使用4.01,它会回答所有这些types的问题。