<link>
Łączy dokument z zewnętrznym zasobem: arkuszem stylów, ikoną strony, fontem albo inną wersją językową.
- Wyświetlanie
- none
- Znacznik zamykający
- Brak, element pusty
- Dozwolona zawartość
- Brak, element pusty
Przykład
#<head>
<meta charset="utf-8">
<title>Kurs HTML i CSS od podstaw | CodeWorlds</title>
<link rel="stylesheet" href="/css/style.css">
<link rel="icon" href="/favicon.ico" sizes="32x32">
<link rel="icon" href="/icon.svg" type="image/svg+xml">
<link rel="canonical" href="https://www.codeworlds.com/kurs-html-css">
</head>Definicja i zastosowanie
#Element <link> opisuje związek między bieżącą stroną a innym zasobem. Rodzaj tego związku podajesz w atrybucie rel, a adres w href. Najczęściej dołączasz w ten sposób plik CSS i ikonę strony (favicon), ale <link> potrafi też przyspieszyć wczytywanie zasobów albo wskazać wyszukiwarce właściwy adres strony.
To element pusty, bez znacznika zamykającego, i zwykle stoi w <head>. Nie jest widoczny ani klikalny. Na tym polega różnica względem <a>: odnośnik jest dla użytkownika, a <link> to informacja dla przeglądarki i robotów.
Arkusz stylów dołączony w nagłówku wstrzymuje wyświetlanie strony, dopóki się nie pobierze. Brzmi groźnie, ale to celowe: dzięki temu nie widać przez chwilę strony bez stylów. Warto więc dbać o to, żeby pliki CSS były lekkie.
Składnia
#<link rel="relacja" href="adres">Atrybuty
#rel
lista słów kluczowych
Rodzaj związku z zasobem i zarazem informacja, co przeglądarka ma z nim zrobić. Bezrelelement nic nie robi. Najważniejsze wartości opisują kolejne wiersze tej tabeli.href
URL
Adres zasobu, względny (/css/style.css) albo pełny (https://…). Bez niego element niczego nie wskazuje.arkusz stylów CSS
Dołącza zewnętrzny plik CSS. To najpopularniejszy sposób stylowania stron: jeden plik obsługuje wszystkie podstrony, a przeglądarka po pierwszym pobraniu trzyma go w pamięci podręcznej. Atrybututype="text/css"nie trzeba dopisywać.zapytanie o media
Stosuje arkusz tylko wtedy, gdy warunek jest spełniony, na przykład przy drukowaniu (print) albo w trybie ciemnym. Plik, którego warunek nie jest spełniony, przeglądarka i tak pobiera, ale z niższym priorytetem i bez wstrzymywania wyświetlania strony.ikona strony (favicon)
Ikona widoczna na karcie przeglądarki i w zakładkach. Atrybutsizespodaje wymiary (np.32x32), atypeformat pliku. Popularny zestaw to plik.icodla starszych programów, ikona SVG, która skaluje się bez utraty jakości,apple-touch-icon(180 × 180 px) dla ekranu głównego w iOS i manifest aplikacji z ikonami dla Androida.wczesne pobranie zasobu, razem z `as`
Każe pobrać zasób od razu, zanim przeglądarka sama by go odkryła, na przykład font ukryty głęboko w pliku CSS albo główny obraz strony. Atrybutas(font,image,style,script,fetch) jest obowiązkowy i mówi, czym jest zasób. Fonty wymagają też atrybutucrossorigin, nawet gdy pochodzą z własnego serwera.wczesne połączenie z innym serwerem
Nawiązuje połączenie z serwerem, z którego za chwilę pobierzesz zasoby, np. z serwisem fontów. Przeglądarka wcześniej załatwia wyszukanie adresu, połączenie i szyfrowanie, więc sam plik przychodzi szybciej. Lżejsza wersja,dns-prefetch, tylko ustala adres IP serwera.główny adres strony
Wskazuje wyszukiwarkom podstawowy adres strony, gdy ta sama treść jest dostępna pod kilkoma adresami, na przykład z parametrami?utm_source=…albo z ukośnikiem na końcu i bez niego. Podaj pełny adres. Wyszukiwarka potraktuje go jako mocną wskazówkę, a nie bezwzględne polecenie.inna wersja strony, np. z `hreflang`
Wskazuje alternatywną wersję tej samej treści: w innym języku (z atrybutemhreflang) albo w innym formacie, np. kanał RSS (z atrybutemtype). Wartośćhreflang="x-default"oznacza wersję domyślną dla osób, których języka nie obsługujesz osobno.crossorigin
anonymous | use-credentials
Pobiera zasób w trybie CORS.anonymous(albo sam atrybut bez wartości) nie wysyła ciasteczek do innych domen,use-credentialsje wysyła. Jest potrzebny przy fontach, przyintegritydla plików z innych domen i przypreconnectdo serwerów, z których pobierasz fonty.skrót kryptograficzny, np. `sha384-…`
Zabezpieczenie plików z zewnętrznych serwerów, np. z CDN (Subresource Integrity). Podajesz skrót pliku, a przeglądarka po pobraniu sprawdza, czy się zgadza. Jeśli ktoś podmieni plik na serwerze, przeglądarka go odrzuci. Przy plikach z innej domeny dodaj teżcrossorigin="anonymous".
Element obsługuje też wszystkie atrybuty globalne, takie jak class, id, style czy hidden.
Atrybuty w praktyce
#rel="stylesheet"
arkusz stylów CSSDołącza zewnętrzny plik CSS. To najpopularniejszy sposób stylowania stron: jeden plik obsługuje wszystkie podstrony, a przeglądarka po pierwszym pobraniu trzyma go w pamięci podręcznej. Atrybutu type="text/css" nie trzeba dopisywać.
<link rel="stylesheet" href="/css/style.css">media
zapytanie o mediaStosuje arkusz tylko wtedy, gdy warunek jest spełniony, na przykład przy drukowaniu (print) albo w trybie ciemnym. Plik, którego warunek nie jest spełniony, przeglądarka i tak pobiera, ale z niższym priorytetem i bez wstrzymywania wyświetlania strony.
<link rel="stylesheet" href="/css/style.css">
<link rel="stylesheet" href="/css/print.css" media="print">
<link rel="stylesheet" href="/css/dark.css" media="(prefers-color-scheme: dark)">rel="icon"
ikona strony (favicon)Ikona widoczna na karcie przeglądarki i w zakładkach. Atrybut sizes podaje wymiary (np. 32x32), a type format pliku. Popularny zestaw to plik .ico dla starszych programów, ikona SVG, która skaluje się bez utraty jakości, apple-touch-icon (180 × 180 px) dla ekranu głównego w iOS i manifest aplikacji z ikonami dla Androida.
<link rel="icon" href="/favicon.ico" sizes="32x32">
<link rel="icon" href="/icon.svg" type="image/svg+xml">
<link rel="apple-touch-icon" href="/apple-touch-icon.png">
<link rel="manifest" href="/manifest.webmanifest">rel="preload"
wczesne pobranie zasobu, razem z `as`Każe pobrać zasób od razu, zanim przeglądarka sama by go odkryła, na przykład font ukryty głęboko w pliku CSS albo główny obraz strony. Atrybut as (font, image, style, script, fetch) jest obowiązkowy i mówi, czym jest zasób. Fonty wymagają też atrybutu crossorigin, nawet gdy pochodzą z własnego serwera.
<link rel="preload" href="/fonts/inter.woff2" as="font" type="font/woff2" crossorigin>
<link rel="preload" href="/img/hero.webp" as="image">rel="preconnect"
wczesne połączenie z innym serweremNawiązuje połączenie z serwerem, z którego za chwilę pobierzesz zasoby, np. z serwisem fontów. Przeglądarka wcześniej załatwia wyszukanie adresu, połączenie i szyfrowanie, więc sam plik przychodzi szybciej. Lżejsza wersja, dns-prefetch, tylko ustala adres IP serwera.
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>rel="canonical"
główny adres stronyWskazuje wyszukiwarkom podstawowy adres strony, gdy ta sama treść jest dostępna pod kilkoma adresami, na przykład z parametrami ?utm_source=… albo z ukośnikiem na końcu i bez niego. Podaj pełny adres. Wyszukiwarka potraktuje go jako mocną wskazówkę, a nie bezwzględne polecenie.
<link rel="canonical" href="https://www.codeworlds.com/kurs-html-css">rel="alternate"
inna wersja strony, np. z `hreflang`Wskazuje alternatywną wersję tej samej treści: w innym języku (z atrybutem hreflang) albo w innym formacie, np. kanał RSS (z atrybutem type). Wartość hreflang="x-default" oznacza wersję domyślną dla osób, których języka nie obsługujesz osobno.
<link rel="alternate" hreflang="pl" href="https://www.codeworlds.com/kurs-html">
<link rel="alternate" hreflang="en" href="https://www.codeworlds.com/en/html-course">
<link rel="alternate" hreflang="x-default" href="https://www.codeworlds.com/en/html-course">
<link rel="alternate" type="application/rss+xml" title="Blog CodeWorlds" href="/blog/rss.xml">integrity
skrót kryptograficzny, np. `sha384-…`Zabezpieczenie plików z zewnętrznych serwerów, np. z CDN (Subresource Integrity). Podajesz skrót pliku, a przeglądarka po pobraniu sprawdza, czy się zgadza. Jeśli ktoś podmieni plik na serwerze, przeglądarka go odrzuci. Przy plikach z innej domeny dodaj też crossorigin="anonymous".
<link
rel="stylesheet"
href="https://cdn.example.com/reset.min.css"
integrity="sha384-WDMDqPkpoQaPl6uhHNxkwhv3yB5Ae46EbjyRWmKdfWPSXPigfz2MdYGomGZE9FBE"
crossorigin="anonymous"
>Domyślny CSS
#Większość przeglądarek wyświetla ten element z takimi stylami domyślnymi:
link {
display: none;
}Obsługa przeglądarek
#Szeroko dostępne
Działa we wszystkich nowoczesnych przeglądarkach, także na telefonach. Możesz używać bez obaw.
- Chrome
- Edge
- Firefox
- Safari
Dobre praktyki
#- Pliki CSS dołączaj przez
<link>w nagłówku, a nie przez@importw innym pliku CSS.@importpobiera arkusze jeden po drugim i spowalnia start strony. - Nie przesadzaj z
preload. Wczesne pobieranie wielu plików zabiera łącze temu, co naprawdę pilne, a za nieużyty zasób przeglądarka wyświetli ostrzeżenie w konsoli. <link>nie tworzy klikalnego odnośnika. Do tego służy element<a>.
Powiązane hasła
#- <head>Niewidoczna część dokumentu z metadanymi: tytułem, kodowaniem znaków, opisem, stylami i skryptami.
- <style>Arkusz stylów CSS wpisany bezpośrednio w dokument HTML.
- <meta>Metadane strony: kodowanie znaków, ustawienia widoku na telefonie, opis dla wyszukiwarek i podgląd linku w serwisach społecznościowych.
- <a>Odnośnik do innej strony, pliku, adresu e-mail albo miejsca na tej samej stronie.
- <script>Osadza kod JavaScript w stronie albo wczytuje go z pliku, żeby dodać stronie zachowanie.
- <base>Ustala adres bazowy dla wszystkich względnych adresów w dokumencie oraz domyślny cel odnośników.
Widzisz błąd albo brakuje przykładu? Napisz do nas.