a元素也称锚元素,主要用来表示超链接。HTML全称是超文本标记语言,之所以叫做超文本是因为它有着超链接,链接到其他的文档。超链接就是通过a元素实现的,所以a元素是HTML中使用频率数一数二的元素之一了。
a元素最核心的属性是href(hypertext reference),它的作用包括:

  1. 跳转到网址,这样的链接就叫URL。
  2. 跳转到锚点,这样的链接称锚链接。“锚”就是船锚,是船停泊时用的一个东西。在HTML中可以理解为“定位”。
  3. 功能链接,点击后触发某个功能。如触发js代码、发送邮件、拨打电话。

下面一个个来解释。

URL

在html文档<body>中插入如下代码:

<a href="http://www.baidu.com">
    百度
</a>

这样,网页中就会显示:

点击这个超链接就会跳转到百度了。当然,文字和链接不一定非得是对应的,你也可以文字写为百度,链接设置为http://www.google.com。
要注意的是,链接必须写全,即href属性值必须设置为“http://www.baidu.com”,写成“www.baidu.com”或“baidu.com”都不行,会提示如下信息:

这个问题之后会介绍。

锚链接

可使用如下代码快速生成测试用例:

((h2[id="chaper$"]>{章节$})+p>lorem200)*6

这里的“+”表示兄弟元素。在VScode输入这段文字后按Tab键可以生成如下代码(这里lorem太长了就用截图了):

这里的属性id表示元素在HTML文档中的唯一编号。
类似方法再生成6个a元素:

<a href="#chapter1">章节1</a>
<a href="#chapter2">章节2</a>
<a href="#chapter3">章节3</a>
<a href="#chapter4">章节4</a>
<a href="#chapter5">章节5</a>
<a href="#chapter6">章节6</a>

这样就可以实现一个带目录的网页了,点击相应的标题链接就能在当前页面跳转到相应的h2标题,不刷新页面。这个技巧在博客中常用到。

如下代码可以回到顶部:

<a href="#">回到顶部</a>

功能性超链接

①执行JS代码

<a href="javascript:alert('Hello, world!')">
    Hello, world!
</a>


②发送邮件

<a href="mailto:[email protected]">
    Send mail
</a>


所以执行这种功能需要你的计算机上安装邮件客户端。
③拨打电话

<a href="tel:10010">
    Call
</a>


这个功能一般应用在手机端。

Target属性

a元素的另一个主要属性是target。它有两个取值:
_self:在当前窗口打开新页面
_blank:在新窗口打开新页面
target的默认值一般是_self。

<a href="http://www.baidu.com" target="_blank">
    百度
</a>


点击后:

路径

1. 站内资源、站外资源
站内资源:当前网站的资源
站外资源:非当前网站的资源

2. 绝对路径、相对路径
一般地,对站外资源使用绝对路径,对站内资源使用相对路径。

3. 路径格式
1)绝对路径书写格式:协议名://主机名:端口号/路径
协议名:http、https、ftp、file等。file表示本地文件。
主机名:域名、IP地址等。
端口号:http是80,https是443,一般被省略。
当跳转目标和当前页面的协议相同时,href属性值的协议可以省略(前提是使用VScode的Live Server插件打开)。如href可以写为href="//www.baidu.com"
如果使用本地文件打开就不行了,因为本地打开时它的协议是file:

同理,哪里相同哪里就可以省略,比如端口号就可以省略。

2)相对路径格式
./表示当前资源所在的目录,可以省略
../表示返回上一级目录
直接举例吧:
这是我的网站文件目录:

a.html:

<a href="http://www.baidu.com" target="_blank">
    百度
</a>
<br>
<a href="./../index.html" target="_self">
    index.html
</a>

index.html:

<a href="./subhtmls/a.html">
    subhtmls -> a.html
</a>

效果: