基本上每个网页上都能找到链接(link)。链接允许用户通过点击它们跳转到一个新的网页或者当前网页的另一个位置,所以又称为“超链接”(hyperlink)。这东西有点儿像游戏里的“传送门”,是联系网络不同位置的重要手段。
下面简单介绍 HTML 中(超)链接及其特性,然后简单介绍 1. 如何创建到其它页面的链接;2. 如何创建页面内部链接。
目录 Contents
超链接使用 HTML 标记语言的 <a>
来标记。使用 <a></a>
标记包裹的内容可以是一个单词、一组单词(句子)或者是图片。点击之后可以跳转到另外一个文档,也可以跳转到当前文档内部的其它位置。这取决于 <a>
的属性设置。
默认情况下,当鼠标指针移到一个超链接(链接)上的时候,原来的“箭头”会变成“小手”。但是这可以通过 CSS 来控制和改变。
默认情况下,所有浏览器中链接的外观都是如下表现(当然也可以通过 CSS 来控制和改变):
做为一个 HTML 标签(元素),<a>
也支持很多 HTML 属性(attribute),包括 HTML 标准属性(所有 HTML 和 XHTML 标签都支持的属性,仅有少数例外)和 HTML 事件属性(使 HTML 事件触发浏览器中的行为,例如当鼠标滑过或者悬停,或者当用户点击某个 HTML 元素时启动一段 JavaScript)。
常用的 <a>
的属性有:
HTML 链接的使用语法如下(尽量包含了上面的各个属性),
<a class="example-class" id="example-a-id" style="text-decoration: none; font-weight: bold;" title="这是一个 HTML 链接示例,链接到网站首页" href="https://cnzhx.net/" target="_blank" rel="alternate bookmark">水景一页</a>
显示到网页上就是这个样子:水景一页
点击上面的链接会打开本站首页。鼠标悬停时能看到提示语,也就是 title 属性的值。
提示:
href="https://cnzhx.net/blog"
点击后服务器需要响应两次请求,第一次会将链接转变为
href="https://cnzhx.net/blog/"
第二次才打开转变后的网址(过程应该很快,但是我们应该尽量避免这种不必要的过程)。
前面提到过,id 属性常被用于创建到当前页面(文档)内部的链接,其作用类似于锚点(anchor)。也因此,HTML5 中将用于制作锚点的 <a> 的属性 name 取消了。
例如,在下面的位置创建一个”内部链接锚点位置“:
内部链接锚点位置
<a id="tips">内部链接锚点位置</a>
在同一个文档的其它位置创建一个到”内部链接锚点位置“的链接就是:
<a href="#tips">访问”内部链接锚点位置“</a>
显示出来就是,
访问”内部链接锚点位置“
而如果在别的文档中,还需要在 #tips 前面加上到目标文档的链接地址:
<a href="https://cnzhx.net/blog/html-links/#tips">访问 ”HTML 链接“ 页面上的”内部链接锚点位置“</a>
显示出来就是,
访问 ”HTML 链接“ 页面上的”内部链接锚点位置“
提示:
<h1 id="h1anchor">标题一</h1>
就有了一个锚点 h1anchor
。比如本文内部的几个小标题都设有锚点,并且在标题后面还用一个符号建了个超链接到当前锚点的位置。这主要是因为在页面上是看不到锚点的,查看页面源文件才能看到,不方便。可以点击这里跳转到 1. 创建到其它页面的链接 试试看。
id
属性值。<a href="https://cnzhx.net/blog/html-links/#">本文</a>
就会指向该页面的顶部。例如本站页面底部的”TOP“按钮就是用这种方式制作的(查看回到顶部按钮的制作方法)。
另外,本站给文档内部锚点都用一个符号 ¶ 标记出来了,将下面的代码放到锚点后面就可以了(注意将其中 #
号后面的文本 anchor 改成对应的猫点名称):
<span class="anchorlink"><a href="#anchor">¶</a></span>
其中 anchorlink 类的 CSS 样式是:
.anchorlink {
background-color: transparent;
color: transparent;
text-decoration: none;
font-size: smaller;
margin-left: 0.25em;
margin-right: 0.25em;
padding-left: 0.5em;
padding-right: 0.5em;
}
.anchorlink a:link {
background-color: transparent;
color: transparent;
text-decoration: none;
}
h1:hover .anchorlink a,
h2:hover .anchorlink a,
h3:hover .anchorlink a {
color: lightgray;
}
因为主要是针对 <h1>
<h2>
等 HTML 标记使用页面内部链接。©