HTML External Resource Link element (
<link>
)
specifies relationships between the current document and an external resource. This element is most commonly used to link to
stylesheets
, but is also used to establish site icons (both "favicon" style icons and icons for the home screen and apps on mobile devices) among other things.
To link an external stylesheet, you'd include a
<link>
element inside your
<head>
像这样:
<link href="main.css" rel="stylesheet">
This simple example provides the path to the stylesheet inside an
href
attribute, and a
rel
attribute with a value of
样式表
。
rel
stands for "relationship", and is probably one of the key features of the
<link>
element — the value denotes how the item being linked to is related to the containing document. As you'll see from our
Link 类型
reference, there are many different kinds of relationship.
There are a number of other common types you'll come across. For example, a link to the site's favicon:
<link rel="icon" href="favicon.ico">
There are a number of other icon
rel
values, mainly used to indicate special icon types for use on various mobile platforms, e.g.:
<link rel="apple-touch-icon-precomposed" sizes="114x114"
href="apple-icon-114.png" type="image/png">
sizes
attribute indicates the icon size, while the
type
contains the MIME type of the resource being linked. These provide useful hints to allow the browser to choose the most appropriate icon available.
You can also provide a media type or query inside a
media
attribute; this resource will then only be loaded if the media condition is true. For example:
<link href="print.css" rel="stylesheet" media="print"> <link href="mobile.css" rel="stylesheet" media="screen and (max-width: 600px)">
Some interesting new performance and security features have been added to the
<link>
element too. Take this example:
<link rel="preload" href="myFont.woff2" as="font"
type="font/woff2" crossorigin="anonymous">
A
rel
value of
preload
indicates that the browser should preload this resource (see
采用 rel="preload" 预加载内容
for more details), with the
as
attribute indicating the specific class of content being fetched. The
crossorigin
attribute indicates whether the resource should be fetched with a
CORS
request.
Other usage notes:
<link>
element can occur either in the
<head>
or
<body>
element, depending on whether it has a
link type
也就是
body-ok
. For example, the
样式表
link type is body-ok, and therefore
<link rel="stylesheet">
is permitted in the body. However, this isn't a good practice to follow; it makes more sense to separate your
<link>
elements from your body content, putting them in the
<head>
.
<link>
to establish a favicon for a site, and your site uses a Content Security Policy (CSP) to enhance its security, the policy applies to the favicon. If you encounter problems with the favicon not loading, verify that the
Content-Security-Policy
header's
img-src
directive
is not preventing access to it.
<link>
element, but it is unclear how they would be used.
<link>
require a trailing slash:
<link />
.
next
for
rel
to preload the next page in a document series.
此元素包括 全局属性 .
as
rel="preload"
or
rel="prefetch"
has been set on the
<link>
element. It specifies the type of content being loaded by the
<link>
, which is necessary for request matching, application of correct
content security policy
, and setting of correct
Accept
request header. Furthermore,
rel="preload"
uses this as a signal for request prioritization. The table below lists the valid values for this attribute and the elements or resources they apply to.
| 值 | Applies To |
|---|---|
| audio |
<audio>
元素
|
| document |
<iframe>
and
<frame>
元素
|
| embed |
<embed>
元素
|
| fetch |
fetch, XHR
This value also requires
|
| font | CSS @font-face |
| image |
<img>
and
<picture>
elements with srcset or imageset attributes, SVG
<image>
elements, CSS
*-image
rules
|
| 对象 |
<object>
元素
|
| script |
<script>
elements, Worker
importScripts
|
| style |
<link rel=stylesheet>
elements, CSS
@import
|
| track |
<track>
元素
|
| 视频 |
<video>
元素
|
| worker | Worker, SharedWorker |
crossorigin
<canvas>
element without being
tainted
. The allowed values are:
anonymous
Origin
HTTP header) is performed, but no credential is sent (i.e. no cookie, X.509 certificate, or HTTP Basic authentication). If the server does not give credentials to the origin site (by not setting the
Access-Control-Allow-Origin
HTTP header) the resource will be tainted and its usage restricted.
use-credentials
Origin
HTTP header) is performed along with a credential sent (i.e. a cookie, certificate, and/or HTTP Basic authentication is performed). If the server does not give credentials to the origin site (through
Access-Control-Allow-Credentials
HTTP header), the resource will be
tainted
and its usage restricted.
Origin
HTTP header), preventing its non-tainted usage. If invalid, it is handled as if the enumerated keyword
anonymous
was used. See
CORS 设置属性
for additional information.
被禁用
For
rel="stylesheet"
only, the
被禁用
Boolean attribute indicates whether or not the described stylesheet should be loaded and applied to the document. If
被禁用
is specified in the HTML when it is loaded, the stylesheet will not be loaded during page load. Instead, the stylesheet will be loaded on-demand, if and when the
被禁用
attribute is changed to
false
or removed.
设置
被禁用
property in the DOM causes the stylesheet to be removed from the document's
document.styleSheets
列表。
href
hreflang
href
attribute is present.
imagesizes
rel="preload"
and
as="image"
only, the
imagesizes
属性为
a sizes attribute
that indicates to preload the appropriate resource used by an
img
element with corresponding values for its
srcset
and
sizes
属性。
imagesrcset
rel="preload"
and
as="image"
only, the
imagesrcset
属性为
a sourceset attribute
that indicates to preload the appropriate resource used by an
img
element with corresponding values for its
srcset
and
sizes
属性。
integrity
media
注意事项:
print
,
screen
,
aural
,
braille
. HTML5 extended this to any kind of
media queries
, which are a superset of the allowed values of HTML 4.
prefetch
安全上下文
Identifies a resource that might be required by the next navigation and that the user agent should retrieve it. This allows the user agent to respond faster when the resource is requested in the future.
referrerpolicy
no-referrer
means that the
Referer
header will not be sent.
no-referrer-when-downgrade
means that no
Referer
header will be sent when navigating to an origin without TLS (HTTPS). This is a user agent’s default behavior, if no policy is otherwise specified.
origin
means that the referrer will be the origin of the page, which is roughly the scheme, the host, and the port.
origin-when-cross-origin
means that navigating to other origins will be limited to the scheme, the host, and the port, while navigating on the same origin will include the referrer's path.
unsafe-url
means that the referrer will include the origin and the path (but not the fragment, password, or username). This case is unsafe because it can leak origins and paths from TLS-protected resources to insecure origins.
rel
sizes
rel
contains a value of
icon
or a non-standard type such as Apple's
apple-touch-icon
. It may have the following values:
any
, meaning that the icon can be scaled to any size as it is in a vector format, like
image/svg+xml
.
<width in pixels>
x
<height in pixels>
or
<width in pixels>
X
<height in pixels>
. Each of these sizes must be contained in the resource.
注意:
Most icon formats are only able to store one single icon; therefore most of the time the
sizes
attribute contains only one entry. MS's ICO format does, as well as Apple's ICNS. ICO is more ubiquitous, so you should use this format if cross-browser support is a concern (especially for old IE versions).
title
title
attribute has special semantics on the
<link>
element. When used on a
<link rel="stylesheet">
it defines a
preferred or an alternate stylesheet
. Incorrectly using it may
cause the stylesheet to be ignored
.
type
type
attribute, but is actually now recommended practice. It is also used on
rel="preload"
link types, to make sure the browser only downloads file types that it supports.
方法
target
Defines the frame or window name that has the defined linking relationship or that will show the rendering of any linked resource.
charset
iso-8859-1
.
Usage note:
To produce the same effect as this obsolete attribute, use the
Content-Type
HTTP header on the linked resource.
rev
href
attribute. The attribute thus defines the reverse relationship compared to the value of the
rel
属性。
Link type values
for the attribute are similar to the possible values for
rel
.
注意:
This attribute is considered obsolete by the WHATWG HTML living standard (which is the specification MDN treats as canonical). However, it's worth noting that
rev
is
not
considered obsolete in the W3C specification. That said, given the uncertainty, relying on
rev
is unwise.
Instead, you should use the
rel
attribute with the opposite
link type value
. For example, to establish the reverse link for
made
, specify
作者
. Also this attribute doesn't stand for "revision" and must not be used with a version number, even though many sites misuse it in this way.
To include a stylesheet in a page, use the following syntax:
<link href="style.css" rel="stylesheet">
You can also specify alternative style sheets .
The user can choose which style sheet to use by choosing it from the View > Page Style menu. This provides a way for users to see multiple versions of a page.
<link href="default.css" rel="stylesheet" title="Default Style"> <link href="fancy.css" rel="alternate stylesheet" title="Fancy"> <link href="basic.css" rel="alternate stylesheet" title="Basic">
You can include links to several different icons on the same page, and the browser will choose which one works best for its particular context using the
rel
and
sizes
values as hints.
<!-- third-generation iPad with high-resolution Retina display: --> <link rel="apple-touch-icon-precomposed" sizes="144x144" href="favicon144.png"> <!-- iPhone with high-resolution Retina display: --> <link rel="apple-touch-icon-precomposed" sizes="114x114" href="favicon114.png"> <!-- first- and second-generation iPad: --> <link rel="apple-touch-icon-precomposed" sizes="72x72" href="favicon72.png"> <!-- non-Retina iPhone, iPod Touch, and Android 2.1+ devices: --> <link rel="apple-touch-icon-precomposed" href="favicon57.png"> <!-- basic favicon --> <link rel="icon" href="favicon32.png">
You can provide a media type or query inside a
media
attribute; this resource will then only be loaded if the media condition is true. For example:
<link href="print.css" rel="stylesheet" media="print"> <link href="mobile.css" rel="stylesheet" media="all"> <link href="desktop.css" rel="stylesheet" media="screen and (min-width: 600px)"> <link href="highres.css" rel="stylesheet" media="screen and (min-resolution: 300dpi)">
You can determine when a style sheet has been loaded by watching for a
load
event to fire on it; similarly, you can detect if an error has occurred while processing a style sheet by watching for an
error
event:
<script>
var myStylesheet = document.querySelector('#my-stylesheet');
myStylesheet.onload = function() {
// Do something interesting; the sheet has been loaded
}
myStylesheet.onerror = function() {
console.log("An error occurred loading the stylesheet!");
}
</script>
<link rel="stylesheet" href="mystylesheet.css" id="my-stylesheet">
注意:
load
event fires once the stylesheet and all of its imported content has been loaded and parsed, and immediately before the styles start being applied to the content.
You can find a number of
<link rel="preload">
examples in
Preloading content with
rel="preload"
.
| 内容类别 |
Metadata content. If
itemprop
is present:
流内容
and
措词内容
.
|
|---|---|
| 准许内容 | None, it is an empty element . |
| Tag omission | As it is a void element, the start tag must be present and the end tag must not be present |
| Permitted parents | Any element that accepts metadata elements. If itemprop is present: any element that accepts 措词内容 . |
| Implicit ARIA role |
link
with
href
属性
|
| Permitted ARIA roles |
No
role
permitted
|
| DOM 接口 |
HTMLLinkElement
|
| 规范 | 状态 | 注释 |
|---|---|---|
|
HTML 实时标准
The definition of '<link>' in that specification. |
实时标准 |
添加
imagesizes
and
imagesrcset
属性。
|
|
HTML5
The definition of '<link>' in that specification. |
推荐 |
添加
crossorigin
and
sizes
attributes; extended values of
media
to any media queries; added numerous new values for
rel
.
|
|
HTML 4.01 Specification
The definition of '<link>' in that specification. |
推荐 |
| 桌面 | 移动 | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
link
|
Chrome 完整支持 1 | Edge 完整支持 12 | Firefox 完整支持 1 | IE 完整支持 Yes | Opera 完整支持 Yes | Safari 完整支持 Yes | WebView Android 完整支持 Yes | Chrome Android 完整支持 Yes | Firefox Android 完整支持 4 | Opera Android 完整支持 Yes | Safari iOS 完整支持 Yes | Samsung Internet Android 完整支持 Yes |
charset
弃用
|
Chrome 完整支持 1 | Edge 完整支持 12 | Firefox 完整支持 1 | IE 完整支持 Yes | Opera 完整支持 Yes | Safari 完整支持 Yes | WebView Android 完整支持 Yes | Chrome Android 完整支持 Yes | Firefox Android 完整支持 4 | Opera Android 完整支持 Yes | Safari iOS 完整支持 Yes | Samsung Internet Android 完整支持 Yes |
crossorigin
|
Chrome 完整支持 25 | Edge 完整支持 79 | Firefox 完整支持 18 | IE 不支持 No | Opera 完整支持 15 | Safari ? | WebView Android 完整支持 37 | Chrome Android 完整支持 Yes | Firefox Android 完整支持 18 | Opera Android ? | Safari iOS ? | Samsung Internet Android 完整支持 Yes |
被禁用
弃用
非标
|
Chrome
完整支持
Yes
注意事项
|
Edge 完整支持 12 | Firefox 完整支持 68 | IE 完整支持 Yes |
Opera
完整支持
Yes
注意事项
|
Safari 不支持 No |
WebView Android
完整支持
Yes
注意事项
|
Chrome Android
完整支持
Yes
注意事项
|
Firefox Android 完整支持 68 |
Opera Android
完整支持
Yes
注意事项
|
Safari iOS 不支持 No |
Samsung Internet Android
完整支持
Yes
注意事项
|
href
|
Chrome 完整支持 1 | Edge 完整支持 12 | Firefox 完整支持 1 | IE 完整支持 Yes | Opera 完整支持 Yes | Safari 完整支持 Yes | WebView Android 完整支持 Yes | Chrome Android 完整支持 Yes | Firefox Android 完整支持 4 | Opera Android 完整支持 Yes | Safari iOS 完整支持 Yes | Samsung Internet Android 完整支持 Yes |
hreflang
|
Chrome 完整支持 1 | Edge 完整支持 12 | Firefox 完整支持 1 | IE 完整支持 Yes | Opera 完整支持 Yes | Safari 完整支持 Yes | WebView Android 完整支持 Yes | Chrome Android 完整支持 Yes | Firefox Android 完整支持 4 | Opera Android 完整支持 Yes | Safari iOS 完整支持 Yes | Samsung Internet Android 完整支持 Yes |
integrity
实验性
|
Chrome 完整支持 45 | Edge 完整支持 79 | Firefox ? | IE 不支持 No | Opera 完整支持 32 | Safari 不支持 No | WebView Android 完整支持 45 | Chrome Android 完整支持 45 | Firefox Android ? | Opera Android ? | Safari iOS 不支持 No | Samsung Internet Android 完整支持 5.0 |
media
|
Chrome 完整支持 1 | Edge 完整支持 12 | Firefox 完整支持 1 | IE 完整支持 Yes | Opera 完整支持 Yes | Safari 完整支持 Yes | WebView Android 完整支持 Yes | Chrome Android 完整支持 Yes | Firefox Android 完整支持 4 | Opera Android 完整支持 Yes | Safari iOS 完整支持 Yes | Samsung Internet Android 完整支持 Yes |
方法
弃用
非标
|
Chrome 不支持 No | Edge 不支持 12 — 79 | Firefox 不支持 No | IE 完整支持 4 | Opera 不支持 No | Safari 不支持 No | WebView Android 不支持 No | Chrome Android 不支持 No | Firefox Android 不支持 No | Opera Android 不支持 No | Safari iOS 不支持 No | Samsung Internet Android 不支持 No |
prefetch
实验性
|
Chrome 完整支持 56 | Edge 完整支持 ≤79 | Firefox ? | IE 不支持 No | Opera 完整支持 43 | Safari ? | WebView Android 完整支持 56 | Chrome Android 完整支持 56 | Firefox Android ? | Opera Android 完整支持 43 | Safari iOS ? | Samsung Internet Android 完整支持 6.0 |
prefetch
: Secure context required
实验性
|
Chrome 完整支持 64 | Edge 完整支持 ≤79 | Firefox ? | IE 不支持 No | Opera 完整支持 51 | Safari ? | WebView Android 完整支持 64 | Chrome Android 完整支持 64 | Firefox Android ? | Opera Android ? | Safari iOS ? | Samsung Internet Android 完整支持 9.0 |
referrerpolicy
|
Chrome 完整支持 51 | Edge 完整支持 79 | Firefox 完整支持 50 | IE 不支持 No | Opera 完整支持 38 | Safari 完整支持 11.1 | WebView Android 完整支持 51 | Chrome Android 完整支持 51 | Firefox Android 完整支持 50 | Opera Android 完整支持 41 | Safari iOS 不支持 No | Samsung Internet Android 完整支持 7.2 |
rel
|
Chrome 完整支持 1 | Edge 完整支持 12 | Firefox 完整支持 1 | IE 完整支持 Yes | Opera 完整支持 Yes | Safari 完整支持 Yes | WebView Android 完整支持 Yes | Chrome Android 完整支持 Yes | Firefox Android 完整支持 4 | Opera Android 完整支持 Yes | Safari iOS 完整支持 Yes | Samsung Internet Android 完整支持 Yes |
rel
: Alternative stylesheets.
|
Chrome 不支持 1 — 48 | Edge ? | Firefox 完整支持 3 | IE 完整支持 8 | Opera 完整支持 Yes | Safari ? | WebView Android ? | Chrome Android ? | Firefox Android 完整支持 4 | Opera Android ? | Safari iOS ? | Samsung Internet Android ? |
rel.dns-prefetch
实验性
|
Chrome 完整支持 46 | Edge 完整支持 ≤79 | Firefox 完整支持 3 | IE ? | Opera 完整支持 33 | Safari ? | WebView Android 完整支持 46 | Chrome Android 完整支持 Yes | Firefox Android 完整支持 4 | Opera Android ? | Safari iOS ? | Samsung Internet Android 完整支持 Yes |
rel.icon
|
Chrome
完整支持
4
注意事项
|
Edge
完整支持
12
注意事项
|
Firefox 完整支持 2 | IE 完整支持 11 |
Opera
完整支持
9
注意事项
|
Safari
完整支持
3.1
注意事项
|
WebView Android 完整支持 38 | Chrome Android 完整支持 18 | Firefox Android 完整支持 4 | Opera Android 不支持 No |
Safari iOS
不支持
No
注意事项
|
Samsung Internet Android 完整支持 4.0 |
rel.manifest
实验性
非标
|
Chrome 不支持 No | Edge 不支持 No | Firefox ? | IE ? | Opera 不支持 No | Safari ? | WebView Android 完整支持 39 | Chrome Android 完整支持 39 | Firefox Android ? | Opera Android ? | Safari iOS ? | Samsung Internet Android 完整支持 4.0 |
rel.modulepreload
实验性
|
Chrome 完整支持 66 | Edge 完整支持 ≤79 | Firefox ? | IE ? | Opera 完整支持 53 | Safari ? | WebView Android 完整支持 66 | Chrome Android 完整支持 66 | Firefox Android ? | Opera Android 完整支持 47 | Safari iOS ? | Samsung Internet Android 完整支持 9.0 |
rel.preconnect
实验性
|
Chrome 完整支持 46 | Edge 完整支持 79 |
Firefox
完整支持
39
注意事项
|
IE 不支持 No | Opera 完整支持 33 | Safari 完整支持 11.1 | WebView Android 完整支持 46 | Chrome Android 完整支持 46 |
Firefox Android
完整支持
39
注意事项
|
Opera Android 完整支持 33 | Safari iOS 完整支持 11.3 | Samsung Internet Android 完整支持 4.0 |
rel.prefetch
实验性
|
Chrome 完整支持 8 | Edge 完整支持 12 | Firefox 完整支持 2 | IE 完整支持 11 | Opera 完整支持 15 | Safari 不支持 No | WebView Android 完整支持 4.4 | Chrome Android 完整支持 18 | Firefox Android 完整支持 4 | Opera Android 完整支持 14 | Safari iOS 不支持 No | Samsung Internet Android 完整支持 1.5 |
rel.preload
实验性
|
Chrome 完整支持 50 | Edge 完整支持 ≤79 |
Firefox
不支持
56 — 57
注意事项
|
IE ? | Opera 完整支持 37 | Safari ? | WebView Android 完整支持 50 | Chrome Android 完整支持 50 |
Firefox Android
不支持
56 — 57
注意事项
|
Opera Android ? | Safari iOS ? | Samsung Internet Android 完整支持 5.0 |
rel.prerender
实验性
|
Chrome 完整支持 13 | Edge 完整支持 79 | Firefox 不支持 No | IE 完整支持 11 | Opera 完整支持 15 | Safari 不支持 No | WebView Android 完整支持 4.4 | Chrome Android 完整支持 18 | Firefox Android 不支持 No | Opera Android 完整支持 14 | Safari iOS 不支持 No | Samsung Internet Android 完整支持 1.5 |
rev
|
Chrome 完整支持 1 | Edge 完整支持 12 | Firefox 完整支持 1 | IE 完整支持 Yes | Opera 完整支持 Yes | Safari 完整支持 Yes | WebView Android 完整支持 Yes | Chrome Android 完整支持 Yes | Firefox Android 完整支持 4 | Opera Android 完整支持 Yes | Safari iOS 完整支持 Yes | Samsung Internet Android 完整支持 Yes |
sizes
实验性
|
Chrome 不支持 No | Edge 不支持 No |
Firefox
不支持
No
注意事项
|
IE 不支持 No | Opera 不支持 No | Safari 不支持 No | WebView Android 不支持 No | Chrome Android 不支持 No |
Firefox Android
不支持
No
注意事项
|
Opera Android 不支持 No | Safari iOS 不支持 No | Samsung Internet Android 不支持 No |
target
弃用
|
Chrome 完整支持 1 | Edge 完整支持 12 | Firefox 完整支持 1 | IE 完整支持 Yes | Opera 完整支持 Yes | Safari 完整支持 Yes | WebView Android 完整支持 Yes | Chrome Android 完整支持 Yes | Firefox Android 完整支持 4 | Opera Android 完整支持 Yes | Safari iOS 完整支持 Yes | Samsung Internet Android 完整支持 Yes |
title
|
Chrome 完整支持 1 | Edge 完整支持 12 | Firefox 完整支持 1 | IE 完整支持 Yes | Opera 完整支持 Yes | Safari 完整支持 Yes | WebView Android 完整支持 Yes | Chrome Android 完整支持 Yes | Firefox Android 完整支持 4 | Opera Android 完整支持 Yes | Safari iOS 完整支持 Yes | Samsung Internet Android 完整支持 Yes |
type
|
Chrome 完整支持 1 | Edge 完整支持 12 | Firefox 完整支持 1 | IE 完整支持 Yes | Opera 完整支持 Yes | Safari 完整支持 Yes | WebView Android 完整支持 Yes | Chrome Android 完整支持 Yes | Firefox Android 完整支持 4 | Opera Android 完整支持 Yes | Safari iOS 完整支持 Yes | Samsung Internet Android 完整支持 Yes |
完整支持
不支持
兼容性未知
实验。期望将来行为有所改变。
非标。预期跨浏览器支持较差。
弃用。不要用于新网站。
见实现注意事项。
链接
HTTP header