<a href='#' style='display: block; border: 1px solid black; width: 208px; height: 210px;'>
<a href='#'>My link</a>
</a>
为什么当我在浏览器中打开这个html时,它会在带有黑色边框(即另一个链接)元素的框外显示"我的链接"按钮?
HTML 无效。一个a
元素不能包含另一个a
元素。您看到浏览器错误恢复正在运行。
给定您的代码作为输入,Chrome 中生成的 DOM 看起来(序列化回 HTML 时)如下所示:
<a href="#" style="display: block; border: 1px solid black; width: 208px; height: 210px;">
</a><a href="#">My link</a>
我没有时间编写测试来证明这一点,但我怀疑用于恢复的逻辑是:
- 此处不允许使用第二个
a
元素 - 过早关闭第一个
a
元素,以便允许第二个元素 - 我的链接
a
元素的结尾- 未打开
a
元素的结束标记:丢弃它
如果你这样做,看起来很好:
<div style="display: block; border: 1px solid black; width: 208px; height: 210px;">
<a href="#">My link</a>
</div>