小编典典

为什么嵌套的锚标签是非法的?

html

我了解到,嵌套锚标记不是符合标准的HTML。

从W3:

由A元素定义的链接和锚点不得嵌套;A元素不得包含任何其他A元素。

由于DTD将LINK元素定义为空,因此LINK元素也不能嵌套。

看起来像在此问题中所选答案中建议的替代方案相比,简单地嵌套锚点,更有可能产生意外行为!

使onclick事件处理程序仅用于重定向JS页面似乎也有些过头。更不用说使用脚本解决方案,这会给禁用了脚本的用户浏览带来麻烦。

编辑

有趣的是,我正在做一个小提琴来演示,而我却忽略了chrome实际上是在重组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>

我忽略了这一点,因为我看到悬停正在工作并且将鼠标放在文本上。现在知道这一点并不一定会改变我的问题,但可以肯定地说明了它甚至还没有达到我的想法。


阅读 274

收藏
2020-05-10

共1个答案

小编典典

请记住,锚不仅是一个链接,而且还是可以链接的对象。(虽然前者使用的是 远远
比后者更常见。)报价W3C(老了,但相关的):

锚点是一段文本,用于标记超文本链接的开始和/或结束。

为此,不要将锚视为链接。可以将其视为文档中连接到(和/或来自)另一点的一点(在同一文档或另一文档中,这没有区别)。在某些非物理空间中的两个点通过非物理线程连接。

鉴于此,锚点不应包含太多内容。如果包含很多内容,它将不再成为“要点”,而开始成为“区域”。例如,想象一下一个锚点,该锚点在渲染时会占用比浏览器一次显示更多的空间。如果某个东西链接到该锚点,应该去哪里?开始?中间?结束?(直觉上,您可能会想到开始,但是您明白了。)

此外,锚点绝对不应包含其他锚点。非物理点之间的非物理连接可能会变得模棱两可。子锚是否连接到另一点,还是父锚连接到另一点?在大多数情况下,这 可能
不会造成很大的影响,因为当今 绝大多数
锚点都是从锚点到另一个文档的单向链接。但是锚点的目的不仅仅是指向另一个文档的单向链接,因此定义继续体现了这一目的。

2020-05-10