为什么section/div中的HTML <a>标签会在section/div之外产生副本?

and*_*ewb 1 html anchor markup

我一直试图为一个带有一些箭头的网站制作一个滚动条,但是箭头会变得疯狂,并在以下部分重复自己.我把问题简化为下面的内容 - 当我在一个部分中放置一个a-tag时,由于某些CSS,a-tag是彩色的形状,它会在部分结束后生成一个副本.以下是一些代码尝试:

<head>
<style>
a#block { height:30px; width:30px; display:block; background:blue; }
</style>
</head>

<body>
    <section>
        <a id="block"/>
    </section>
</body>
Run Code Online (Sandbox Code Playgroud)

我意识到上面看起来像标记的可怕使用,但这是有原因的.该块是动作箭头的简化(因此标记),并且该部分是必要的,因为它内部将有更多.

我不知道为什么会发生这种情况,我从未想过HTML元素会重复.有任何想法吗?

Joh*_*nde 8

<a id="block"/>是无效的HTML.<a>必须有一个结束标记:<a id="block"></a>.

当出现奇怪的错误时,请始终验证您的代码.它可以非常有启发性.

  • HTML5规范中有关于[元素类型]的部分(http://www.whatwg.org/specs/web-apps/current-work/multipage/syntax.html#elements-0).`a`是一个*普通元素*,它(通常)必须同时包含一个开始和结束标记.有一些奇怪的例外,值得快速阅读. (4认同)