我想要一个复杂元素的链接(包含图像、段落和其他内容)。我知道它有效,但是可以在<div>
元素中包含一个<a>
元素吗?
3 回答
是的……不。
没有完整的 HTML 或 XHTML 推荐允许它。
HTML 5 草案确实允许这样做,但您可能必须做一些事情,例如明确设置display: block
锚点以使其在某些浏览器中工作。您可能会发现其他人根本不支持它(我希望能够链接到显示浏览器对此支持的参考资料,但不知道,如果您这样做,请发表评论。)
也就是说,虽然有很好的大点击目标可能很有用,但它并不是一种对某些浏览器(尤其是屏幕阅读器)具有的“浏览链接模式”友好的方法。您最好在内容中使用常规链接,并应用一些 JavaScript 来响应对整个元素的点击。
在 XHTML1.0 和 HTML4.01 中:没有。a
是一个内联元素,只能包含其他内联元素(但不能包含另一个a
)。
在 HTML5 中:是的,您可以这样做。但是考虑一下为什么你会在一个链接中有数百个字符。
这对 SEO 不利(我相信稀释),对许多残疾用户不利(“嘿,屏幕阅读器,告诉我这个链接有什么作用?”-“让我大声朗读这个链接半分钟”),也许对许多残疾用户不利可用性。
另一种解决方案是在 div 或一些有意义的文本中说出你的标题的链接。然后在 JS 中让你的 div 表现得像你最初想做的那样。然后它将适用于使用辅助技术(屏幕阅读器等)的用户、键盘用户(他们可以通过链接进行标签)和使用 JS 的有视力的鼠标用户。
不,除非您不关心 IE7 及以下版本。即使设置为 display:block,该链接在 IE7 中也无法正常工作。