2014-09-12 49 views
-4

我知道我们使用<a>来建立一个超链接。什么是(真的)使用<a>标签?

但是我不知道,为什么我们使用<a>,为什么不可能仅仅添加href<div>,所以这成为一个超链接?

当然,我可以用javascript来做,但我对这个理论很感兴趣,也许在这个背后有一些有趣的论点。

+0

许多优秀的问题都会根据专家的经验产生一定程度的意见,但对这个问题的回答往往基于意见而非事实,参考或具体专业知识。 – MarsOne 2014-09-12 11:28:27

+0

为什么不在'div'而不是'img'上添加'src'?因为这是'设计'。 – 2014-09-12 11:28:41

回答

1

我认为这是一个相当难回答的问题。也许最好的方法来回答一个合理的答案是关注为什么它应该是而不是是可能的,而不是为什么它可能是可能的。

首先,我们正在讨论超文本标记语言HTML。让我们把它看作一种资源的描述语言。考虑到它的历史,我们还假设,就资源而言,我们正在谈论简单的文本文档。所以现在有很基本的概念来描述这样的文档在语义上,比如“这是一个标题”(h1),“这是一个段落”(p),“这是一个列表”(li)等等上。

其中一个概念是用于引用另一个资源的链接。有几种类型的链接,例如, G。用于引用样式表(链接),图像(img)或其他文档(表单)。

a元素在语义上(!)绑定到这个概念并且表示/描述两个资源之间的关系。所以你从源头向目的地抛锚,也许描述这种关系。这就像在UML图中的两个实体之间画一条线并描述它们是如何相关的。

因此,<p><a>元素描述完全不同的概念。一个在文本中声明段落,另一个在资源之间描述关系。

那么,从语义的角度来看,<p href="other-page.html">Some Text</p>的意思是什么?文本中的段落与另一个资源相关联...?该段描述了资源之间的关系?这甚至有意义吗?在一本真正的书中,第1页上的段落会说“嗨,我与第123页有关”。但是它不再是一个段落,而是对关系的描述 - 而且我们已经有了由<a>标签实现的这个概念。

这基本上就像在说

<p> 
    <a href="other-page.html"> 
     I'll just put the whole relationship description in a paragraph. 
    </a> 
</p> 

有什么意义?段落是段落,链接描述是链接描述。一个段落可能包含一个链接,但不仅包含链接,因为从语义的角度来看,这没有多大意义。

但现在让我们回到未来。现在我们正在处理更复杂的文档,并更多地关注用户界面,以及如何使它看起来美观而不是语义。只要它看起来不错,我们(大部分)并不在乎文本是否被包装在pdivarticlespan元素中 - 毕竟,这只是一个描述,在大多数情况下我们只需要一些东西来自CSS或JS的参考。

所以人类不关心标记,而是计算机。相同的语义仍然是真实的,它们是像Google机器人这样的计算机唯一能够找出他们正在处理的文档的哪部分以及如何处理它(例如:“嘿,这是一篇文章,这可能是最重要的部分“或”只是页脚,不介意重复的内容“)。

在早期没有办法“设计”元素,所以它在不同的用户代理中可能看起来有点不同。用户代理刚刚知道:“好吧,这是一个标题,让我们大胆地增加字体大小”。

所以每个元素都有它自己的目的和分离的担忧。当你尝试合并它们时,不仅需要将两者的属性(重复属性,浏览器中的不同处理......)结合起来,还需要描述它的含义。你可能会发现它没有任何意义。

我希望至少这个答案没有任何意义,它以某种方式回答你的问题。

+0

这确实比以前的无用评论更清楚。非常感谢:) – 2014-09-15 05:47:44

相关问题