--- title: ': Element Łącza Zasobów Zewnętrznych' slug: Web/HTML/Element/link tags: - Element - HTML - HTML metadane dokumentu - Link - Reference - Web - Web Performance - metadane translation_of: Web/HTML/Element/link ---
Element Łącza Zasobów Zewnętrznych (<link>
) określa relacje między aktualnym dokumentem a zewnętrznym zasobem. Ten element jest najczęściej używany do linkowania do {{Glossary("CSS", "arkuszy stylów")}}, ale jest również używany między innymi do tworzenia ikon strony (zarówno ikony typu "favicon", jak i ikon dla ekranu głównego i aplikacji na urządzeniach mobilnych).
Aby połączyć zewnętrzny arkusz stylów, umieść element <link>
wewnątrz swojego {{HTMLElement("head")}} w ten sposób:
<link href="main.css" rel="stylesheet">
Ten prosty przykład podaje ścieżkę do arkusza stylów wewnątrz atrybutu href
oraz atrybut rel
z wartością stylesheet
. rel
oznacza "relację" i jest prawdopodobnie jedną z kluczowych cech elementu <link>
- wartość oznacza sposób, w jaki element, z którym jest powiązany, jest powiązany z dokumentem źródłowym. Jak zobaczysz z naszego odwołania do typów odnośników, istnieje wiele różnych rodzajów relacji.
Jest wiele innych popularnych typów, na które można się natknąć. Na przykład link do favicon na stronie:
<link rel="icon" href="favicon.ico">
Istnieje szereg innych wartości rel
ikon, używanych głównie do wskazywania specjalnych typów ikon do wykorzystania na różnych platformach mobilnych, np.:
<link rel="apple-touch-icon-precomposed" sizes="114x114" href="apple-icon-114.png" type="image/png">
Atrybut sizes
oznacza rozmiar ikony, a type
zawiera typ MIME łączonego zasobu. Dostarczają one użytecznych wskazówek, które pozwalają przeglądarce na wybór najbardziej odpowiedniej dostępnej ikony.
Możesz również podać typ nośnika lub zapytanie wewnątrz atrybutu media
; zasób ten zostanie załadowany tylko wtedy, gdy stan nośnika jest prawdziwy. Na przykład:
<link href="print.css" rel="stylesheet" media="print"> <link href="mobile.css" rel="stylesheet" media="screen and (max-width: 600px)">
Do elementu <link>
dodano również kilka interesujących nowych funkcji wydajności i zabezpieczeń. Weźmy ten przykład:
<link rel="preload" href="myFont.woff2" as="font" type="font/woff2" crossorigin="anonymous">
Wartość rel
dla preload
wskazuje, że przeglądarka powinna wstępnie załadować ten zasób (więcej szczegółów w sekcji Wstępne załadowanie zawartości z rel="preload"), z atrybutem as
wskazującym konkretną klasę pobieranej zawartości. Atrybut crossorigin wskazuje, czy zasób powinien być pobierany z żądaniem {{Glossary("CORS")}}.
Pozostałe uwagi dotyczące zastosowania:
<link>
może występować w elemencie {{HTMLElement("head")}} lub {{HTMLElement("body")}}, w zależności od tego, czy ma on typ połączenia, który jest body-ok. Na przykład, typ linku stylesheet
jest body-ok, a zatem <link rel="stylesheet">
jest dozwolony w body. Jednakże nie jest to dobra praktyka do naśladowania; bardziej sensowne jest oddzielenie elementów <link>
od zawartości, umieszczając je w <head>
.<link>
do utworzenia favicon dla witryny, a Twoja strona używa Content Security Policy (CSP) w celu zwiększenia jej bezpieczeństwa, polityka ta ma zastosowanie do favicon. Jeśli napotkasz problemy z załadowaniem favicon, sprawdź, czy dyrektywa dyrektywa img-src
nagłówka {{HTTPHeader("Content-Security-Policy")}} nie uniemożliwia dostępu do niego.<link>
, ale nie jest jasne, jak miałyby być one wykorzystywane.<link>
wymagają ukośnika: <link />
.next
dla atrybutu rel
, w celu wstępnego załadowania następnej strony w serii dokumentów.Ten element uwzględnia atrybuty globalne.
<link>
ustawiono rel="preload"
lub rel="prefetch"
. Określa on typ zawartości załadowanej przez <link>
, który jest niezbędny do dopasowania żądania, zastosowania poprawnej polityki bezpieczeństwa zawartości, oraz ustawienie poprawnego żądania nagłówka {{HTTPHeader("Accept")}}. Co więcej, rel="preload"
wykorzystuje to jako sygnał do nadania priorytetu żądaniu. Poniższa tabela zawiera ważne wartości dla tego atrybutu oraz elementy lub zasoby, do których się odnoszą.Wartość | Dotyczy |
---|---|
audio | elementów <audio> |
document | elementów <iframe> oraz <frame> |
embed | elementów <embed> |
fetch |
fetch, XHR Ta wartość wymaga również, aby |
font | CSS @font-face |
image | elementy <img> oraz <picture> z atrybutami srcset lub imageset, elementy SVG <image> , reguły CSS *-image |
object | elementy <object> |
script | elementy <script> , Worker importScripts |
style | elementy <link rel=stylesheet> , CSS @import |
track | elementy <track> |
video | elementy <video> |
worker | Worker, SharedWorker |
anonymous
use-credentials
Origin
) wraz z przesłanym poświadczeniem (tj. cookie, certyfikat, i/lub uwierzytelnienie HTTP Basic). Jeśli serwer nie przekaże danych uwierzytelniających do strony pochodzenia (poprzez nagłówek HTTP {{HTTPHeader("Access-Control-Allow-Credentials")}}), zasób zostanie skażony, a jego wykorzystanie ograniczone.Origin
), co uniemożliwia jego bezpieczne użytkowanie. Jeśli jest nieprawidłowy, jest traktowany tak, jakby użyte zostało słowo kluczowe anonymous. Dodatkowe informacje znajdują się w części atrybuty ustawień CORS.Tylko w przypadku rel="stylesheet"
, atrybut logiczny disabled
wskazuje, czy opisany arkusz stylów powinien zostać załadowany i zastosowany w dokumencie. Jeśli atrybut disabled
jest określony w HTML podczas ładowania, arkusz stylów nie zostanie wczytany podczas ładowania strony. Zamiast tego arkusz stylów zostanie załadowany na żądanie, jeśli i kiedy atrybut disabled
zostanie zmieniony na false
lub usunięty.
Jednak po załadowaniu arkusza stylów zmiany wartości właściwości disabled
nie mają już żadnego związku z wartością właściwości {{domxref("StyleSheet.disabled")}}. Zamiast tego zmiana wartości tej właściwości po prostu włącza i wyłącza formularz arkusza stylów zastosowany w dokumencie.
Różni się ona od wartości disabled
właściwości StyleSheet
; zmiana jej na true
powoduje usunięcie arkusza stylów z listy {{domxref("document.styleSheets")}} i nie powoduje automatycznego przeładowania aruksza stylów po ponownym przełączeniu go na false
.
auto
: Oznacza brak preferencji. Przeglądarka może korzystać z własnej heurystyki, aby zdecydować o priorytecie zasobu.
high
: Wskazuje przeglądarce, że zasób ma wysoki priorytet.
low
: Wskazuje przeglądarce, że zasób ma niski priorytet.
Uwaga: Atrybut importance
może być użyty dla elementu <link>
tylko wtedy, gdy występuje rel="preload"
lub rel="prefetch"
.
Uwagi:
print
, screen
, aural
, braille
. HTML5 rozszerzył to na wszelkiego rodzaju zapytania media, które są uzupełnieniem dozwolonych wartości HTML 4.no-referrer
means that the {{HTTPHeader("Referer")}} header will not be sent.no-referrer-when-downgrade
means that no {{HTTPHeader("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.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.Note: Most icon formats are only able to store one single icon; therefore most of the time the {{HTMLAttrxRef("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
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
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.iso-8859-1
.
rel
attribute. Link type values for the attribute are similar to the possible values for {{HTMLAttrxRef("rel", "link")}}.Note: 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 {{HTMLAttrxRef("rel", "link")}} attribute with the opposite link type value. For example, to establish the reverse link for made
, specify author
. 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.
rel
jest ustawiony na stylesheet
. Wartością tego atrybutu może być być pojedyncze określenie medium, jak screen
, lub lista rozdzielona przecinkami. Możliwymi wartościami tego atrybutu all
, aural
, braille
, print
, projection
oraz screen
. Mogą być również zdefiniowane inne wartości, zależnie od przeglądarki. Internet Explorer wspiera all
, print
oraz screen
jako wartości tego atrybutu.alternate
, bookmark
, chapter
, contents
, copyright
, glossary
, help
, index
, next
, prev
, section
, start
, stylesheet
oraz subsection
. Najbardziej powszechnym użyciem tego atrybutu jest określanie linku do zewnętrznego arkusza stylów. Atrybut rel
jest ustawiany na stylesheet
, zaś atrybut href
jest ustawiany na URL zewnętrznego arkusza stylów w celu formatowania strony. WebTV wspiera również użycie wartości next
dla rel
dla wstępnego załadowania następnej strony w serii dokumentów.rev
pokazuje relację aktualnego dokumentu do dokumentu linkowanego, zdefiniowanego przez atrybut href
. Atrybut w ten sposób definiuje odwróconą relację w porównaniu do wartości atrybutu rel
. Wartości dla atrybutu rev
są podobne do możliwych wartości atrybutu rel
. Mogą zawierać alternate
, bookmark
, chapter
, contents
, copyright
, glossary
, help
, index
, next
, prev
, section
, start
, stylesheet
oraz subsection
.target
jest używana do definiowania nazwy ramki lub okna, które ma zdefiniowaną relację linkowania lub które pokaże wyświetlenie jakiegoś zlinkowanego zasobu.MIME
takim jak text/html
, text/css
i tak dalej. Powszechnym użyciem tego atrybutu jest definiowanie zlinkowanego arkusza stylów i najbardziej powszechną obecnie wartością jest text/css
, która wskazuje format Kaskadowych Arkuszy Stylów.Aby dołączyć arkusz stylów do strony, użyj następującej składni:
<link href="style.css" rel="stylesheet">
Można również określić alternatywne arkusze stylów.
Użytkownik może wybrać, który arkusz stylów ma być użyty, wybierając go z menu Widok > Styl strony. Dzięki temu użytkownik może zobaczyć wiele wersji strony.
<link href="default.css" rel="stylesheet" title="Domyślny Styl"> <link href="fancy.css" rel="alternate stylesheet" title="Efektowny"> <link href="basic.css" rel="alternate stylesheet" title="Podstawowy">
Możesz umieścić linki do kilku różnych ikon na tej samej stronie, a przeglądarka wybierze, która z nich najlepiej pasuje do danego kontekstu, używając jako podpowiedzi wartości rel
oraz sizes
.
<!-- iPad trzeciej generacji z wyświetlaczem Retina wysokiej rozdzielczości: --> <link rel="apple-touch-icon-precomposed" sizes="144x144" href="favicon144.png"> <!-- iPhone z wyświetlaczem Retina wysokiej rozdzielczości: --> <link rel="apple-touch-icon-precomposed" sizes="114x114" href="favicon114.png"> <!-- iPad pierwszej i drugiej generacji: --> <link rel="apple-touch-icon-precomposed" sizes="72x72" href="favicon72.png"> <!-- urządzenia iPhone bez wyświetlacza Retina, iPod Touch i Android 2.1+: --> <link rel="apple-touch-icon-precomposed" href="favicon57.png"> <!-- podstawowy favicon --> <link rel="icon" href="favicon32.png">
Możesz podać typ nośnika lub zapytanie wewnątrz atrybutu media
; zasób ten zostanie załadowany tylko wtedy, gdy stan nośnika jest prawdziwy. Na przykład:
<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)">
Można określić kiedy arkusz stylów został załadowany, obserwując, czy wystąpiło na nim zdarzenie load
; podobnie, można wykryć, czy podczas przetwarzania arkusza stylów wystąpił błąd, obserwując, czy wystąpiło zdarzenie error
:
<script> var myStylesheet = document.querySelector('#my-stylesheet'); myStylesheet.onload = function() { // Zrób coś ciekawego; arkusz został załadowany } myStylesheet.onerror = function() { console.log("Wystąpił błąd podczas ładowania arkusza stylów!"); } </script> <link rel="stylesheet" href="mystylesheet.css" id="my-stylesheet">
Uwaga: Zdarzenie load
zostaje wywołane, gdy arkusz stylów i cała jego zaimportowana zawartość zostanie załadowana i przetworzona, a także bezpośrednio przed zastosowaniem stylów do zawartości.
Możesz znaleźć szereg przykładów z <link rel="preload">
w sekcji Wstępne załadowanie zawartości z rel="preload"
.
Kategorie treści | Zawartość metadanych. Jeśli itemprop jest obecny: Zawartość przepływu i Zawartość frazowania. |
---|---|
Dozwolona zawartość | Brak, to jest {{Glossary("empty element", "pusty element")}}. |
Pominięcie znacznika | Ponieważ jest to pusty element, znacznik otwierający musi być obecny, a znacznik zamykający nie może być obecny. |
Dozwoleni rodzice | Każdy element, który akceptuje elementy metadanych. Jeśli itemprop jest obecny: każdy element, który akceptuje zawartość frazowania. |
Dozwolone role ARIA | Brak |
Interfejs DOM | {{DOMxRef("HTMLLinkElement")}} |
Specyfikacja | Status | Komentarz |
---|---|---|
{{SpecName("HTML WHATWG", "semantics.html#the-link-element", "<link>")}} | {{Spec2("HTML WHATWG")}} | Brak zmian w stosunku do ostatniego wydania |
{{SpecName("HTML5 W3C", "document-metadata.html#the-link-element", "<link>")}} | {{Spec2("HTML5 W3C")}} | Dodano atrybuty corssorigin oraz sizes ; rozszerzono wartość media do dowolnych zapytań media; dodano wiele nowych wartości dla rel . |
{{SpecName("HTML4.01", "struct/links.html#h-12.3", "<link>")}} | {{Spec2('HTML4.01')}} |
{{Compat("html.elements.link", 3)}}