The HTML <link>
element specifies relationships between the current document and an external resource. Possible uses for this element include defining a relational framework for navigation. This element is most used to link to style sheets.
Content categories | Metadata content. If itemprop is present: flow content and phrasing content |
---|---|
Permitted content | 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 phrasing content. |
Permitted ARIA roles | None |
DOM interface | HTMLLinkElement |
Attributes
This element includes the global attributes.
as
- This attribute is only used when
rel="preload"
has been sent on the<link>
element. It specifies the type of content being loaded by the<link>
, which is necessary for content prioritization, request matching, application of correct content security policy, and setting of correctAccept
request header. charset
- This attribute defines the character encoding of the linked resource. The value is a space- and/or comma-delimited list of character sets as defined in RFC 2045. The default value is
iso-8859-1
.Usage note: This attribute is obsolete and must not be used by authors. To achieve its effect, use theContent-Type
HTTP header on the linked resource. crossorigin
- This enumerated attribute indicates whether CORS must be used when fetching the related resource. CORS-enabled images can be reused in the
<canvas>
element without being tainted. The allowed values are:"anonymous"
- A cross-origin request (i.e. with
Origin:
HTTP header) is performed. But no credential is sent (i.e. no cookie, no X.509 certificate and no HTTP Basic authentication). If the server does not give credentials to the origin site (by not setting theAccess-Control-Allow-Origin:
HTTP header) the image will be tainted and its usage restricted. "use-credentials"
- A cross-origin request (i.e. with
Origin:
HTTP header) is performed with credential is sent (i.e. a cookie, a certificate and HTTP Basic authentication is performed). If the server does not give credentials to the origin site (throughAccess-Control-Allow-Credentials:
HTTP header), the image will be tainted and its usage restricted.
Origin:
HTTP header), preventing its non-tainted used in<canvas>
elements. If invalid, it is handled as if the enumerated keyword anonymous was used. See CORS settings attributes for additional information. disabled
- This attribute is used to disable a link relationship. In conjunction with scripting, this attribute could be used to turn on and off various style sheet relationships.
Note: While there is no
disabled
attribute in the HTML standard, there is adisabled
attribute on theHTMLLinkElement
DOM object.The use of
disabled
as an HTML attribute is non-standard and only used by some browsers (W3 #27677). Do not use it. To achieve a similar effect, use one of the following techniques:- If the
disabled
attribute has been added directly to the element on the page, do not include the<link>
element instead; - Set the
disabled
property of theStyleSheet
DOM object via scripting.
- If the
href
- This attribute specifies the URL of the linked resource. A URL might be absolute or relative.
hreflang
- This attribute indicates the language of the linked resource. It is purely advisory. Allowed values are determined by BCP47. Use this attribute only if the
href
attribute is present. integrity
- Contains inline metadata, a base64-encoded cryptographic hash of a resource (file) you’re telling the browser to fetch, that a user agent can use to verify that a fetched resource has been delivered free of unexpected manipulation. See Subresource Integrity.
media
- This attribute specifies the media which the linked resource applies to. Its value must be a media query. This attribute is mainly useful when linking to external stylesheets by allowing the user agent to pick the best adapted one for the device it runs on.
Usage note:
- In HTML 4, this can only be a simple white-space-separated list of media description literals, i.e., media types and groups, where defined and allowed as values for this attribute, such as
print
,screen
,aural
,braille
. HTML5 extended this to any kind of media queries, which are a superset of the allowed values of HTML 4. - Browsers not supporting the CSS3 Media Queries won't necessarily recognize the adequate link; do not forget to set fallback links, the restricted set of media queries defined in HTML 4.
- In HTML 4, this can only be a simple white-space-separated list of media description literals, i.e., media types and groups, where defined and allowed as values for this attribute, such as
methods
- The value of this attribute provides information about the functions that might be performed on an object. The values generally are given by the HTTP protocol when it is used, but it might (for similar reasons as for the title attribute) be useful to include advisory information in advance in the link. For example, the browser might choose a different rendering of a link as a function of the methods specified; something that is searchable might get a different icon, or an outside link might render with an indication of leaving the current site. This attribute is not well understood nor supported, even by the defining browser, Internet Explorer 4. See Methods Property (MSDN).
prefetch
- This attribute 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
- A string indicating which referrer to use when fetching the resource:
'no-referrer'
meaning that theReferer
header will not be sent.'no-referrer-when-downgrade'
meaning that noReferer
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'
meaning that the referrer will be the origin of the page, that is roughly the scheme, the host and the port.'origin-when-cross-origin'
meaning 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'
meaning 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
- This attribute names a relationship of the linked document to the current document. The attribute must be a space-separated list of the link types values. The most common use of this attribute is to specify a link to an external style sheet: the rel attribute is set to
stylesheet
, and the href attribute is set to the URL of an external style sheet to format the page. WebTV also supports the use of the valuenext
for rel to preload the next page in a document series. rev
- The value of this attribute shows the relationship of the current document to the linked document, as defined by the
href
attribute. The attribute thus defines the reverse relationship compared to the value of the rel attribute. Link types values for the attribute are similar to the possible values forrel
.Usage note: This attribute is obsolete in HTML5. Do not use it. To achieve its effect, use therel
attribute with the opposite link types values, e.g.made
should be replaced byauthor
. Also this attribute doesn't mean revision and must not be used with a version number, which is unfortunately the case on numerous sites. sizes
- This attribute defines the sizes of the icons for visual media contained in the resource. It must be present only if the
rel
contains theicon
link types value. It may have the following values:any
, meaning that the icon can be scaled to any size as it is in a vectorial format, likeimage/svg+xml
.- a white-space separated list of sizes, each in the format
<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.
Usage note:- Most icon format are only able to store one single icon; therefore most of the time the
sizes
contains only one entry. MS's ICO format does, as well as Apple's ICNS. ICO being more ubiquitous, you should use it. - Apple's iOS does not support this attribute, hence Apple's iPhone and iPad use special, non-standard link types values to define icon to be used as Web Clip or start-up placeholder:
apple-touch-icon
andapple-touch-startup-icon
.
target
- Defines the frame or window name that has the defined linking relationship or that will show the rendering of any linked resource.
title
- The
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
- This attribute is used to define the type of the content linked to. The value of the attribute should be a MIME type such as text/html, text/css, and so on. The common use of this attribute is to define the type of style sheet linked and the most common current value is text/css, which indicates a Cascading Style Sheet format. It is also used on
rel="preload"
link types, to make sure the browser only downloads file types that it supports.
Examples
Including a stylesheet
To include a stylesheet in a page, use the following syntax:
<link href="style.css" rel="stylesheet">
Providing alternative stylesheets
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">
Stylesheet load events
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> function sheetLoaded() { // Do something interesting; the sheet has been loaded } function sheetError() { console.log("An error occurred loading the stylesheet!"); } </script> <link rel="stylesheet" href="mystylesheet.css" onload="sheetLoaded()" onerror="sheetError()">
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.Preload examples
You can find a number of <link rel="preload"> examples in Preloading content with rel="preload".
Notes
- A
<link>
tag can occur only in the head element; however, there can be multiple occurrences of<link>
. - HTML 3.2 defines only the href, rel, rev, and title attributes for the link element.
- HTML 2 defines the href, methods, rel, rev, title, and urn attributes for the
<link>
element. The methods and urn attributes were later removed from the specifications. - The HTML and XHTML specifications define event handlers for the
<link>
element, but it is unclear how they would be used. - Under XHTML 1.0, empty elements such as
<link>
require a trailing slash:<link />
.
Specifications
Specification | Status | Comment |
---|---|---|
Preload | Working Draft | Defines <link rel="preload"> , and the as attribute. |
Subresource Integrity The definition of '<script>' in that specification. |
Recommendation | Added the integrity attribute. |
HTML Living Standard The definition of '<link>' in that specification. |
Living Standard | No changes from latest snapshot |
HTML5 The definition of '<link>' in that specification. |
Recommendation | Added 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. |
Recommendation | |
Resource Hints The definition of 'prefetch' in that specification. |
Working Draft | Added dns-prefetch , preconnect , prefetch , and prerender . |
Browser compatibility
Feature | Chrome | Edge | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|---|
Basic support | 1 | (Yes) | 1.0 (1.7 or earlier) | (Yes) | (Yes) | (Yes) |
Alternative stylesheets | ? | (Yes) | 3.0 (1.9) | (Yes) | (Yes) | ? |
disabled attribute |
No support | (Yes) | No support | (Yes) | No support | No support |
methods attribute |
No support | No support | No support | 4.0 | No support | No support |
sizes attribute |
No support | No support | No support bug 441770 | No support | No support | No support |
load and error events |
19 (Webkit: 535.23) |
? | 9.0 (9.0) | ? | 11.60 | ? |
crossorigin attribute |
25 | No support | 18 (18) | ? | 15 | ? |
integrity attribute |
45 | No support | ? | ? | ? | No support[1] |
referrerpolicy attribute |
58 | No support | 50 (50) | ? | ? | ? |
prefetch attribute |
56 | ? | ? | ? | 43 | ? |
as attribute (and rel="preload" ) |
50 | ? | 56 (56)[2] | ? | (Yes) | (Yes) |
Feature | Android Webview | Chrome for Android | Edge | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|---|
Basic support | (Yes) | (Yes) | (Yes) | 1.0 (1.0) | (Yes) | (Yes) | (Yes) |
Alternative stylesheets | ? | ? | (Yes) | 4.0 (2.0) | (Yes) | ? | ? |
disabled attribute |
? | ? | (Yes) | No support | ? | No support | No support |
methods attribute |
? | ? | No support | No support | 4.0 | No support | No support |
sizes attribute |
? | ? | No support | No support bug 441770 | No support | No support | No support |
load and error events |
? | ? | ? | 9.0 (9.0) | ? | ? | ? |
crossorigin attribute |
? | ? | No support | 18.0 (18.0) | ? | ? | ? |
integrity attribute |
45 | 45.0 | No support | ? | ? | ? | ? |
referrerpolicy attribute |
58 | 58 | No support | 50.0 (50.0) | ? | ? | ? |
prefetch attribute | 56 | 56.0 | ? | ? | ? | 43 | ? |
as attribute (and rel="preload" ) |
50 | 50 | ? | 56.0 (56)[2] | ? | (Yes) | ? |
[1] WebKit bug 148363 tracks WebKit implementation of Subresource Integrity (which includes the integrity
attribute).
[2] Firefox supports preloading of the following content (as
values) — script
, style
, image
, video
, audio
, track
, font
, and fetch
. The list of font types Firefox supports preloading of is defined in the fonts media type list (note font/collection
is not supported).