在标题内锚定,反之亦然?

Fre*_*old 82 html seo hyperlink semantics

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

(1):

<a href="foo">
    <h1>bar</h1>
</a>
Run Code Online (Sandbox Code Playgroud)

(2):

<h1>
    <a href="foo">bar</a>
</h1>
Run Code Online (Sandbox Code Playgroud)

我总是最终做(1),因为它对我来说似乎更合乎逻辑,标题包含在一个链接中.

它在SEO方面有什么不同吗?有最好的做法吗?

ani*_*son 75

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

在HTML5中:
无所谓,使用最具语义意义的人.可能是第一个.

请记住,如果您的文档使用HTML4 DTD,它将无法验证,并且可能无法正确呈现,因为它使用旧规则,其中锚不能包含块级元素.仅使用HTML5中的第一个选项.XHTML相当于HTML4,但我对XHTML1.1并不是100%肯定(试试看它是否有效).


MGZ*_*ero 7

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

<!DOCTYPE HTML>
Run Code Online (Sandbox Code Playgroud)

4.01 doctype是:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 
Run Code Online (Sandbox Code Playgroud)

如果您打算使用4.01,我还建议您熟悉DTD本身,它将回答所有这些类型的问题.