Jak zrobić link w HTML
Link to element kotwicy, <a>, z atrybutem href. href określa, dokąd prowadzi link; treść między znacznikami to to, co klika czytelnik.
Przeglądarki pokazują linki na niebiesko z podkreśleniem i zmieniają kursor w dłoń. Ostatnia linia pokazuje, dlaczego href jest ważny: bez niego <a> to zwykły tekst. Nie da się na niego przejść klawiaturą ani go kliknąć i nie wygląda jak link.
Bezwzględne i względne adresy URL
Wartość href decyduje, dokąd prowadzi link. Główne formy:
href | Prowadzi do |
|---|---|
https://example.com/page | Bezwzględny URL: dokładnie tego adresu |
/about | about w katalogu głównym bieżącej witryny |
about.html | about.html w tym samym folderze co bieżąca strona |
../index.html | index.html o jeden folder wyżej |
#pricing | Elementu z id="pricing" na tej stronie |
/help#faq | Sekcji faq innej strony w tej witrynie |
mailto:hi@example.com | Nowego e-maila w programie pocztowym czytelnika |
tel:+15551234567 | Połączenia telefonicznego na urządzeniach, które je obsługują |
Do innych witryn używaj bezwzględnych URL, a we własnej ścieżek względnych od katalogu głównego (/about): działają dalej, gdy strona, która je zawiera, trafi do innego folderu.
<a href="https://www.wikipedia.org/">Wikipedia</a> <!-- another site -->
<a href="/pricing">Pricing</a> <!-- same site, from the root -->
<a href="www.wikipedia.org">Broken</a> <!-- relative path, not a site! -->
Ostatnia linia to najczęstszy błąd w linkach. Bez https:// przeglądarka czyta www.wikipedia.org jako nazwę pliku w bieżącym folderze.
Linki e-mail i telefoniczne mają własną stronę: linki e-mail w HTML.
Link do sekcji strony
Każdy element z id może być celem. Podlinkuj go przez # i id, a przeglądarka przewinie do niego stronę. Kliknij linki w podglądzie:
Kilka szczegółów:
- Id musi pasować dokładnie, łącznie z wielkością liter.
href="#FAQ"nie znajdzieid="faq". href="#top"ihref="#"przewijają na początek strony, nawet gdy żaden element nie ma idtop.- Selektor
:targetstylizuje sekcję, na którą aktualnie wskazuje URL. Na prawdziwej stronie ją wyróżnia; podgląd przewija bez zmiany adresu, więc wyróżnienia w nim nie widać. - Żeby podlinkować sekcję innej strony, dodaj krzyżyk do jej adresu URL:
<a href="/docs/html/table#caption">.
Kotwice pod przyklejonym nagłówkiem
Przyklejony (sticky) lub stały nagłówek zasłania górę sekcji, do której skaczesz. scroll-margin-top na elementach docelowych zostawia na niego miejsce, a scroll-behavior: smooth animuje skok:
Usuń linię z scroll-margin-top i znów kliknij Two: nagłówek zostanie schowany za ciemnym paskiem.
Linki do pobierania
Atrybut download prosi przeglądarkę o zapisanie pliku zamiast jego otwarcia. Jego wartość, jeśli ją podasz, to proponowana nazwa pliku:
<a href="/files/report-2026.pdf" download>Download the report</a>
<a href="/files/r-8f2a.pdf" download="report.pdf">Download (saved as report.pdf)</a>
download działa tylko dla plików z tego samego źródła (origin) co strona (ten sam schemat, host i port) oraz dla adresów data: i blob:. Dla pliku z innego źródła, nawet z subdomeny, przeglądarki go ignorują i otwierają plik jak zwykły link. Serwer może wymusić pobieranie dowolnego pliku nagłówkiem Content-Disposition: attachment.
Tekst linku, który ma sens
Użytkownicy czytników ekranu często przechodzą przez stronę od linku do linku, słysząc tylko tekst linków. "Kliknij tutaj" i "Czytaj więcej" nic im nie mówią.
<!-- Vague: -->
To see our prices, <a href="/pricing">click here</a>.
<!-- Clear: -->
See the <a href="/pricing">pricing plans</a>.
Atrybut title pokazuje dymek po najechaniu myszą, ale nie widać go na ekranach dotykowych ani dla większości użytkowników klawiatury, więc nie umieszczaj w nim niczego ważnego.
Cała karta jako link
<a> może obejmować treść blokową: nagłówek, obrazek i akapit mogą razem tworzyć jeden link. Tak buduje się klikalne karty.
display: block sprawia, że klikalne jest całe pole, a nie tylko tekst. Treść karty niech będzie krótka, bo czytnik ekranu odczytuje ją całą jako nazwę linku. I nigdy nie wstawiaj do środka innego linku ani przycisku: elementów interaktywnych nie można zagnieżdżać w <a>.
Inne atrybuty znacznika a
| Atrybut | Co robi |
|---|---|
href | Cel. Bez niego <a> nie jest linkiem |
target | Gdzie otworzyć link; target="_blank" otwiera nową kartę, zobacz otwieranie linku w nowej karcie |
rel | Relacja z celem: noopener, nofollow, sponsored, ugc |
download | Zapisuje plik zamiast go otwierać |
hreflang | Język strony docelowej, jako wskazówka |
referrerpolicy | Ile z bieżącego URL wysłać jako referrer |
Częste błędy
- Brak schematu w zewnętrznym URL.
href="www.site.com"to ścieżka względna. Piszhttps://. <a href="#">dla akcji JavaScript. Przewija na początek strony i dodaje#do adresu. Jeśli kliknięcie nigdzie nie prowadzi, użyj<button>.- Link w linku albo przycisk w linku. Oba to niepoprawny HTML: drugi
<a>sprawia, że parser wcześniej zamyka pierwszy, a kliknięcie przycisku w linku nie ma jasnego celu. - Spacje w nazwach plików.
href="my file.html"zwykle działa, bo przeglądarka koduje spację, alemy-file.htmlcałkowicie omija problem. - "Kliknij tutaj" jako tekst linku. Opisz cel linku.
- Niezgodna wielkość liter w id.
#Pricingiid="pricing"to co innego.
Najczęściej zadawane pytania
Jak zrobić link w HTML?
Użyj elementu kotwicy: <a href="https://example.com">Example</a>. href to cel, a tekst między znacznikami to to, co klika czytelnik.
Co oznacza skrót href?
Hypertext reference, czyli odwołanie hipertekstowe. Zawiera URL, na który wskazuje link: pełny adres, ścieżkę w tej samej witrynie, jak /about, sekcję strony, jak #pricing, albo schemat, jak mailto:.
Jak podlinkować konkretne miejsce na stronie?
Nadaj elementowi docelowemu id, a potem podlinkuj go z krzyżykiem: <h2 id="faq">FAQ</h2> i <a href="#faq">FAQ</a>. Z innej strony dodaj krzyżyk do adresu URL: <a href="/help#faq">.
Dlaczego link prowadzi na złą stronę, gdy piszę www?
Bez https:// przeglądarka traktuje www.example.com jako względną ścieżkę w twojej witrynie, więc link prowadzi pod adres w rodzaju yoursite.com/www.example.com. W linkach zewnętrznych zawsze pisz schemat: href="https://www.example.com".
Czy znacznik a może zawierać div?
Tak. W HTML5 <a> może obejmować treść blokową, taką jak <div>, nagłówek i akapit; tak buduje się linki obejmujące całą kartę. Nie może jednak zawierać innego linku, przycisku ani żadnego innego elementu interaktywnego.