2011-11-17 62 views
69

我在制作时常常会碰到这个问题(相当简单的问题) WordPress的博客。我是否应该将标题(也应该是链接)包裹在锚点<a>元素中,或者应该是相反的方式。为什么?锚头内的锚,或反之亦然?

(1)

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

(2)

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

我总是最后做(1),因为它只是似乎更合乎逻辑的我,标题被包裹在链接中。

它是否在例如搜索引擎优化?有最佳做法吗?

+2

[关于专业网站管理员的问题](http://webmasters.stackexchange.com/questions/20446/anchor-tag-inside-h1-or-h1-inside-achor-tag-which-is-better)是你在找什么 –

+0

谢谢,好像是这样:) –

回答

66

此前HTML5:
锚必须是头里面,你不能把一个块级元素的锚点,大多数浏览器不会使其100%可靠的,如果你做的。

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

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

7

如果您使用的是HTML 4.01 DTD(不确定过渡,但绝对是严格的),那么锚元素必须出现在标题元素内。检查你的文档类型,如果你不知道你正在使用哪个DTD(假设你有一个,你需要oyur代码被认为是有效的)。 HTML5的DOCTYPE是这样的:

<!DOCTYPE HTML> 

4.01 DOCTYPE是:

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

我还建议与DTD本身,如果你打算用4.01上班熟悉自己,它会回答所有这些类型的问题。