为什么不允许除锚之外的标签中的href属性? - EG:<h1 href =“”> </h1>

时间:2014-08-25 14:57:58

标签: html w3c-validation

我刚刚经历了一个我当前的项目,并删除了多余的html和css,在不需要的地方,删除了不需要div的abjects的div,例如我想知道,为什么我们需要围绕一切的achors:

<a href="Cake">
    <div>
        <p>This is not a lie.</p>
    </div>
</a>

为什么不允许简单地允许:

<div href="Cake">
    <p>This is not a lie.</p>
</div>

1 个答案:

答案 0 :(得分:7)

我在这里过分简化,但它是关于概念的。

在HTML中,每个标签都有一个含义和功能。有时它纯粹是美学(<b>,粗体文本),有时是它的语义(<span>,一大块内联文本),有时两者都是(<h1>,标题从这里开始)。关键是使用语义 标记部分文本。

<a>标记是超链接。 <a></a>之间的所有内容都应该像这样:如果单击,则跳转到某个URL。现在该网址是<a>代码的属性,您可以通过href指定。

这个href<a>标记之外没有任何意义,因为HTML出生时,CSS和JavaScript都不存在,所以你不能做像制作这样的事情像我们今天一样<span>可点击。但即使在今天,允许元素采用其他元素的功能也没有意义,因为它会污染它们的语义

在您的第二个示例中,您已完全删除了<a>标记,因此它不再是一个链接。即使解析器在href上允许div,但突然使其表现得像a标记也是错误的,因为它不是。