在锚标记内创建锚标记

在我的随机测试期间,我看到了一种行为,我将锚标记放在另一个锚标记内。我做了一个jsfiddle。


<a class="groupPopper">

     <a class="name"> content</a>

</a>

但在开发人员工具中它看起来不同:


我相信我们不能将锚标记放在另一个锚标记内,因为单击内部锚点会将click事件冒泡到父锚标记,这不应该被允许。


我的假设是否正确?


牛魔王的故事
浏览 414回答 3
3回答

倚天杖

aHTML语法中禁止使用嵌套元素。HTML规范没有说明原因; 他们只是强调规则。实际上,浏览器在解析规则中有效地强制执行此限制,因此与许多其他问题不同,违反规范是行不通的。解析器有效地将<a>open a元素内的开始标记视为在开始新元素之前隐式地终止open元素。所以如果你写<a href=foo>foo <a href=bar>bar</a> zap</a>,你将不会得到嵌套元素。浏览器会将其解析为<a href=foo>foo</a> <a href=bar>bar</a> zap,即作为两个连续的链接后跟一些纯文本。嵌套a元素本身并不存在任何不合逻辑:它们可以实现,以便点击“foo”或“zap”激活外部链接,单击“bar”激活内部链接。但是我没有理由使用这样的结构,HTML的设计者可能也没有看到它,所以他们决定禁止它,从而简化了事情。(如果您真的想模拟嵌套链接,可以使用普通链接作为外部链接,span使用合适的事件处理程序作为内部“链接”。或者,您可以复制链接:<a href=foo>foo</a> <a href=bar>bar</a> <a href=foo>zap</a>。)

茅侃侃

嵌套链接是非法的。由A元素定义的链接和锚点不得嵌套; A元素不得包含任何其他A元素。
打开App,查看更多内容
随时随地看视频慕课网APP