a元素也称锚元素,主要用来表示超链接。HTML全称是超文本标记语言,之所以叫做超文本是因为它有着超链接,链接到其他的文档。超链接就是通过a元素实现的,所以a元素是HTML中使用频率数一数二的元素之一了。
a元素最核心的属性是href(hypertext reference),它的作用包括:
- 跳转到网址,这样的链接就叫URL。
- 跳转到锚点,这样的链接称锚链接。“锚”就是船锚,是船停泊时用的一个东西。在HTML中可以理解为“定位”。
- 功能链接,点击后触发某个功能。如触发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>
效果: