在我的随机测试期间,我看到了一种行为,我将锚标记放在另一个锚标记内。我做了一个jsfiddle。<a class="groupPopper"> <a class="name"> content</a></a>但在开发人员工具中它看起来不同:我相信我们不能将锚标记放在另一个锚标记内,因为单击内部锚点会将click事件冒泡到父锚标记,这不应该被允许。我的假设是否正确?
3 回答
倚天杖
TA贡献1828条经验 获得超3个赞
a
HTML语法中禁止使用嵌套元素。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>
。)
- 3 回答
- 0 关注
- 413 浏览
相关问题推荐
添加回答
举报
0/150
提交
取消