以HTML格式打开和关闭标签

时间:2014-01-15 10:49:42

标签: html html5

我只是HTML的初学者。所以,对不起,如果这是一个非常基本的问题。

到目前为止,我知道对于每个标记我们应该打开并确保关闭它,例如:

<span id="xxx" class="yyy">Hello</span>

今天我看到了这样的事情:

<span id="xxx" class="yyy">X</a> 

有人可以解释

2 个答案:

答案 0 :(得分:3)

<span id="xxx" class="yyy">X</a> 

这是一个错误,浏览器将尝试从中恢复,以便用户不会获得破碎的体验。

某些元素具有可选的开始标记。一些元素具有可选的结束标记。 spana不属于这些元素。

答案 1 :(得分:0)

标记<span id="xxx" class="yyy">X</a>在任何上下文中都不符合HTML语法规则:即使在此之前有一个开放的<a>标记,到目前为止还没有匹配的结束标记,a element不能以这种方式关闭,因为其中会有一个开放的span元素,span不允许使用结束标记。

实际发生的事情取决于具体情况。如果有<a>开始标记,则结束标记</a>会将其关闭,并且,作为错误恢复,浏览器也会隐式关闭span标记。

如果没有<a>开始标记,则会跳过结束标记</a>,因为不匹配任何内容,浏览器会继续查找</span>标记,直到遇到外部元素的结束标记或无法包含在span元素中的元素的开始标记,例如<p>

一个简单的演示:

<style>span { background: green }</style>
<a><span id="xxx" class="yyy">X</a> Hello world
<hr>
<span id="xxx" class="yyy">Y</a> Hi again
<p>Done.

此处“X”将具有绿色背景,因为它被视为第一个span的唯一内容。 “Y Hi again”也有绿色背景,因为它将被解析为第二个span的内容。

所以它变脏了。虽然错误恢复在浏览器中相当一致,并且在HTML5中标准化,但最好通过使用有效标记来避免它。您可以使用http://validator.w3.org等验证程序来检查您的标记。