链接标签

233 阅读3分钟

链接(hyperlink)是互联网的核心,它允许用户在页面上,从一个网址跳转到另一个网址,从而把所有资源联系在一起。 URL是链接指向的地址。链接不仅可以指向另一个网页,也可以指向文本、图像和文件等资源。所有互联网上的资源,都可以通过链接访问。

1、<a>

a标签定义一个超级链接,浏览器跳转到href属性指定的网址。 a标签有如下属性:

  • href:给出链接指向的网址,值为URL或锚点。
  • hreflang:给出链接指向的网址所使用的语言。
  • title:给出链接的说明信息。
  • target:指定如何展示打开的链接:_self/_blank/_parent/_top
  • rel:说明链接与当前页面的关系:alternate/author/bookmark/external/help/license/next/nofollow/noreferrer/noopener/prev/search/tag
  • referrerpolicy:用于精确设定点击链接时,浏览器发送HTTP头信息的Referer字段的行为。
  • ping:指定一个网址,用户点击时,向该网址发出一个POST请求,用于跟踪用户的行为。
  • type:给出链接URL的MIME类型,比如到底是网页、图像还是文件。
  • download:表明当前链接用于下载,而不是跳转到另一个URL。

2、邮件链接

链接也可以指向一个邮件地址,使用mailto协议。点击后浏览器打开本机默认邮件程序,让用户向指定的地址发送邮件。

<a href="mailto:contact@example.com">联系我们</a>

邮件协议允许指定其他几个邮件要素:

  • subject:主题
  • cc:抄送
  • bcc:密送
  • body:邮件内容 使用方法为将这些邮件要素,以查询字符串的方式附加在邮箱地址后面。
<a
  href="mailto:foo@bar.com?cc=test@test.com&subject=The%20subject&body=The%20body"
>发送邮件</a>

3、电话链接

手机浏览的页面,可以使用tel协议,创建电话链接。

<a href="tel:13312345678">13312345678</a>

4、<link>

4.1基本用法

link标签用于将当前网页与相关的外部资源联系起来,通常放在head标签里面,常见用途为加载CSS样式表,加载网站的favicon图标文件,提供文档的相关链接。

4.2rel属性

rel属性是外部资源与当前文档之间的关系,是link标签的必须属性。属性值包括以下:alternate/author/dns-prefetch/help/icon/license/next/pingback/preconnect/prefetch/preload/prerender/prev/search/stylesheet

4.3资源的预加载

浏览器预加载某些资源,将资源缓存,等到使用的时候,不需从网上下载,能立即使用,预处理指令可以解决上述问题。 预加载的五种类型: 1.<link rel="preload"> 告诉浏览器尽快下载并缓存资源(javascript或css),该指令优先级高,浏览器必执行,缓存资源后不执行,当需要时立即可用。 as属性指定加载资源的类型:script/style/image/media/document。 type属性明确MIME类型。 onload指定回调函数,在脚本下载完成后执行,立即插入页面。

<link rel="preload" as="style" href="async_style.css" onload="this.rel='stylesheet'">

2.<link rel="prefetch"> 使用场合为后续页面需要某个资源,并且希望预加载该资源,以便加速页面渲染。 3.<link rel="preconnect"> 要求浏览器提前与某个域名建立TCP连接。 4.<link rel="dns-prefetch"> 要求浏览器提前执行某个域名的DNS解析。 5.<link rel="prerender"> 要求浏览器加载某个网页,并且提前渲染它。

4.4media属性

media属性给出外部资源生效的媒介条件。例如判断屏幕宽度或者是否打印。

4.5其他属性

crossorigin/href/referrerpolicy/as/type/title/sizes

5、<script>

script标签用于加载脚本代码,即JavaScript代码。 script标签加载外部脚本,src属性给出外部脚本地址。 type属性默认JavaScript代码,也可以设置成module,表示ES6模块。 其他属性:async/defer/crossorigin/integrity/nonce/referrerpolicy

6、<noscript>

noscript标签用于浏览器不支持或关闭JavaScript时所要显示的内容。目的是节省带宽,延长手机电池寿命,或者防止追踪,保护隐私。