我了解到嵌套锚标签不符合标准的HTML.
从W3:
由A元素定义的链接和锚点不得嵌套; A元素不得包含任何其他A元素.
由于DTD将LINK元素定义为空,因此LINK元素也可以不嵌套.
看起来像在这个问题的选定答案中建议的那些替代品将比仅仅嵌套锚点更有可能产生意想不到的行为!
使用onclick事件处理程序只是为了重定向JS中的页面似乎有点过分.更不用说使用脚本解决方案会导致用户在禁用脚本时浏览时出现问题.
编辑
有趣的是,我工作的一个小提琴来证明,我已经忽略了镀铬实际上重组DOM这样:
<div id="container">
<a href="http://yahoo.com"></a>
<div class="parent">
<a href="http://yahoo.com">Parent Element</a>
<a href="http://google.com">
<div class="child">Child Element</div>
</a>
<a href="http://bing.com">
<div class="child">Other Child</div>
</a>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
我忽略了这一点,因为我看到悬停工作并将鼠标放在文本上.现在知道这一点并不一定会改变我的问题,但它确实证明它甚至不像我想象的那样工作.
Dav*_*vid 35
请记住,锚不仅仅是一个链接,它也是一个可以链接的东西.(虽然前者使用的是远远比后者更常见.)报价W3C(老了,但相关的):
锚是一段文本,标记超文本链接的开头和/或结尾.
为此,不要将锚视为一个链接.将其视为文档中连接到(和/或来自)另一个点的点(在同一文档或其他文档中,它没有区别).某些非物理空间中的两个点由非物理线程连接.
鉴于此,锚点不应包含大量内容.如果它包含很多内容,它就不再成为一个"点"并开始成为一个"区域".例如,想象一个锚点,当渲染时占用的空间比浏览器一次显示的空间大.如果有东西链接到那个锚,它应该去哪里?一开始?中间?结束?(直觉上你可能会想到开头,但你明白了.)
此外,锚点绝对不应包含其他锚点.非物理点之间的非物理连接可能变得模糊不清.子锚点是否连接到另一个点,或者父锚点是否连接到另一个点?这可能不会导致被在大多数情况下,一个大问题,因为庞大的今天大多数锚是从锚点到另一个文档单向链接.但锚的目的不仅仅是与另一个文档的单向链接,因此该定义继续体现这一目的.