如果一个锚元素有文本(只有文本),但不是更大的文本块的一部分,那么锚标记是否被段落元素包裹起来是否重要(例如语义,搜索引擎优化,维护)?
<!-- Wrapped -->
<p><a href=''>Link Description</a></p>
<!-- Standard -->
<a href=''>Link Description</a>
纵观大型网站,这两种方式似乎都很受欢迎。但是有没有明显的差异?
答案 0 :(得分:1)
(请注意,div
只应使用for paragraphs。如果它不是段落,并且您想要使用此类包装,请改用p
;如果是段落,无论如何都应该使用div
。)
我可以想到两种情况,这种包装在语义上很重要(见下文)。当然,使用包装器的另一个好理由是,如果现有的CSS / JS建议/要求它(例如,如果CSS作者决定设置a
个元素,而div
没有div
1}}包装器会破坏布局。)
不支持作者提供的CSS的用户代理(如文本浏览器,提要阅读器等)通常会为p
,span
等元素开始一个新行(即, &#34;块级元素&#34;在HTML 4中),但不适用于a
,<p>Teaser with some text.</p>
<a href="link">Read more</a>
<cite>John Doe</cite>
等元素(&#34;内联元素&#34;)。
所以,如果你有这样的事情:
Teaser with some text.
Read more John Doe
这样的用户代理可能会在同一行显示最后两个元素:
Teaser with some text.
Read more
John Doe
虽然最好让每个人都有自己的路线:
a
因此,对于此类和类似情况,应使用包装元素(通常默认创建一个新行)。
如果p
是唯一的phrasing content元素(例如,在两个p
元素之间),那么这当然不是问题。
p
如果a
元素没有结束标记(有效),则以下p
将成为<p>some text
<a href="link">Read more</a>
的一部分:
p
如果关闭a
不是一个选项,则必须使用p
的包装器(一个不能是div
的子包的包装器,例如,{ {1}})。