Tananyag
6. lecke · Linkek és útvonalak

2. modul · HTML alapok · 6. lecke

Linkek és útvonalak

A link teszi a webet webbé — enélkül csak különálló lapok lennének. Ez a lecke viszont nem a linkről szól elsősorban, hanem az útvonalról: hogyan mondod meg a böngészőnek, hol keresse a másik fájlt. Ez a tananyag eddigi legfontosabb gyakorlati része.

≈ 35 perc Előtte: 2–5. lecke Itt buknak el a legtöbben

Mit fogsz tudni a lecke végén

1Az a elem

A link elemének neve egyetlen betű: <a> — az anchor (horgony) szóból. Egyetlen attribútuma kötelező: a href, ami a hypertext reference rövidítése, és azt mondja meg, hova mutat a link.

< a href = "rolam.html" > Rólam </ a > HOVA mutat AMIRE kattintasz ez látszik az oldalon
A href a cél, a tartalom pedig a kattintható felület.
Az első link
index.html
<p>
  Nézd meg a
  <a href="https://hu.wikipedia.org">Wikipédiát</a>,
  ha többet szeretnél tudni.
</p>
Eredmény a böngészőben
A kék szín és az aláhúzás a böngésző alapértelmezése, nem te csináltad. Figyeld meg azt is, hogy a link a mondat közepén áll — az <a> soron belüli elem, nem tör új sort.
A LINK BÁRMIT KÖRÜLVEHET

Nemcsak szöveget: képet, egy egész kártyát, listaelemet is. Amit az <a> közrefog, az lesz a kattintható felület. Egyetlen tilalom van: linket nem tehetsz linkbe.

2Milyen legyen a link szövege?

A linkszöveg nem mindegy. Sok felhasználó — és minden képernyőolvasó-program — képes kilistázni egy oldal összes linkjét, a környező szöveg nélkül. Ilyenkor derül ki, hogy a linkszöveg beszédes-e.

✘ Semmitmondó
<a href="arak.html">Kattints ide</a>
<a href="doc.pdf">itt</a>
<a href="rolam.html">bővebben</a>
<a href="x.html">https://x.hu/o/2</a>
✔ Beszédes
<a href="arak.html">Áraink</a>
<a href="doc.pdf">Letölthető útmutató</a>
<a href="rolam.html">Rólam bővebben</a>
<a href="x.html">A projekt leírása</a>
SzabályMiért?
A linkszöveg írja le a célt„Kattints ide" a listából kiragadva semmit nem mond. „Áraink" mindent.
Ne legyen nyers URLA https://x.hu/oldal/2?id=7 felolvasva rémálom, és olvasni is nehéz.
Legyen elég hosszúEgy-két betűs link nehezen eltalálható, főleg érintőképernyőn.
Ne ismétlődjön más céllalÖt „bővebben" link öt különböző oldalra: megkülönbözthetetlen.
A PRÓBA

Olvasd fel hangosan csak a linkek szövegét, a mondat többi része nélkül. Ha így is tudod, hova vezetnek, jó a linkszöveged.

3Abszolút útvonal: a teljes cím

Az abszolút útvonal a teljes webcím, a protokolltól kezdve. Akkor használod, ha másik weboldalra mutatsz.

<a href="https://hu.wikipedia.org/wiki/HTML">HTML a Wikipédián</a>
https:// hu.wikipedia.org /wiki/HTML protokoll hogyan tartománynév melyik szerver útvonal melyik fájl a szerveren
Egy teljes webcím (URL) három része.
A PROTOKOLLT NE HAGYD LE!

Ez a leggyakoribb link-hiba. Ha ezt írod:

<a href="www.google.hu">Google</a>

akkor a böngésző nem külső címként érti, hanem fájlnévként: egy www.google.hu nevű fájlt fog keresni a saját mappádban. Nem találja, és hibát kapsz.

Helyesen: href="https://www.google.hu"

SAJÁT OLDALAIDRA NE HASZNÁLD

A saját oldalaid között ne abszolút úttal linkelj. Ha https://sajatoldalam.hu/rolam.html-t írsz, az azonnal eltörik, amint a mappát átmásolod máshova, vagy másik gépen nyitod meg. Ilyenkor relatív útvonal kell — jön a következő pontban.

4Relatív útvonal: ugyanabban a mappában

A relatív útvonal nem a világ elejétől indul, hanem attól a fájltól, amiben éppen vagy.

AZ ALAPKÉRDÉS

„Onnan indulva, ahol most vagyok, hogyan jutok el a célfájlhoz?" Nem az számít, hol van a fájl a merevlemezen — az számít, hol van hozzád képest.

A legegyszerűbb eset: egy mappában vannak

a projektmappa
weboldal/
├── index.html      ← most itt vagyunk
├── rolam.html
└── kapcsolat.html

Az index.html-ből a másik kettőre így hivatkozol:

<a href="rolam.html">Rólam</a>
<a href="kapcsolat.html">Kapcsolat</a>

Ennyi — se protokoll, se mappanév, se perjel. Csak a fájlnév, mert ugyanott van.

A PONT-PERJEL

Látni fogsz ilyet is: href="./rolam.html". A ./ azt jelenti: „ebben a mappában". Ugyanazt jelenti, mintha nem írnád oda — elhagyható. Mi nem fogjuk kiírni.

5Mappákon át: lefelé és felfelé

Most jön a nehezebb rész. Ha a célfájl másik mappában van, meg kell mondanod az utat odáig. Két irány van:

JelölésMit jelent?
mappanev/Lefelé: lépj be ebbe az almappába
../Felfelé: lépj ki a szülőmappába

Egy konkrét mappaszerkezet

A továbbiakban végig ezzel dolgozunk:

weboldal/
weboldal/
├── index.html
├── kepek/
│   ├── profil.jpg
│   └── hatter.jpg
└── oldalak/
    ├── rolam.html
    ├── kapcsolat.html
    └── projektek/
        └── elso.html
weboldal/ index.html kepek/ oldalak/ profil.jpg rolam.html projektek/ elso.html
Ugyanaz a szerkezet fa alakban. Az útvonalírás nem más, mint séta ezen a fán.

Lefelé: belépés egy almappába

Az index.html-ben vagyunk. El akarunk jutni a rolam.html-hez:

<a href="oldalak/rolam.html">Rólam</a>

Olvasd így: „lépj be az oldalak mappába, ott van a rolam.html". Két szint lefelé ugyanígy:

<a href="oldalak/projektek/elso.html">Első projekt</a>

Felfelé: kilépés a szülőmappába

Most fordítva: a rolam.html-ben vagyunk (az oldalak mappában), és vissza akarunk jutni a kezdőlapra:

<a href="../index.html">Kezdőlap</a>

A ../ azt jelenti: „lépj ki egy szinttel". Innen már látszik az index.html.

Fel és le egyszerre

A rolam.html-ből a profil.jpg képhez először ki kell lépni, aztán be a másik mappába:

<a href="../kepek/profil.jpg">A profilképem</a>

És a legmélyebbről, az elso.html-ből a kezdőlapra két szintet kell felfelé lépni:

<a href="../../index.html">Kezdőlap</a>

Összefoglaló táblázat

Melyik fájlból melyikhez — a teljes szerkezet alapján
Innen……ideAz útvonal
index.htmloldalak/rolam.htmloldalak/rolam.html
index.htmlkepek/profil.jpgkepek/profil.jpg
index.html…/projektek/elso.htmloldalak/projektek/elso.html
oldalak/rolam.htmlindex.html../index.html
oldalak/rolam.htmloldalak/kapcsolat.htmlkapcsolat.html
oldalak/rolam.htmlkepek/profil.jpg../kepek/profil.jpg
…/projektek/elso.htmlindex.html../../index.html
…/projektek/elso.htmloldalak/rolam.html../rolam.html
MONDD KI HANGOSAN

A ../../index.html hangosan: „ki egy szintet, ki még egy szintet, ott az index.html". Ha ki tudod mondani, le is tudod írni. Kezdőként rajzold le a mappaszerkezetet egy papírra, és mutass rá az ujjaddal az útra.

MINDIG PERJEL, SOHA VISSZAPERJEL

A Windows a \ jelet használja a mappák elválasztására (C:\web\kepek), a web viszont mindig a / jelet. HTML-ben soha ne írj visszaperjelet.

A FÁJLNÉV BETŰRE PONTOS

A legtöbb webszerver megkülönbözteti a kis- és nagybetűt. A Profil.JPG és a profil.jpg két különböző fájl. Windowson a saját gépeden működni fog — a szerveren nem. Ezért írunk mindent kisbetűvel (2. lecke).

6A perjellel kezdődő útvonal

Van egy harmadik forma is, ami perjellel kezdődik:

<a href="/oldalak/rolam.html">Rólam</a>

A kezdő / azt jelenti: „indulj a webhely gyökeréből", vagyis a legfelső szintről — függetlenül attól, hol vagy éppen. Ez kényelmes nagy oldalaknál, mert minden fájlból ugyanaz az útvonal működik.

TANULÁS KÖZBEN NE HASZNÁLD

Két okból is fejfájást okoz:

  1. Ha a fájlt duplán kattintva nyitod meg (file:///), a „gyökér" a merevlemezed gyökere lesz — vagyis a C:\. Az oldalad összes linkje és képe eltörik.
  2. Ha az oldalad később egy almappába kerül a szerveren, szintén eltörik minden.

Ebben a tananyagban végig relatív útvonalat használunk, kezdő perjel nélkül. De jó ha felismered, mert találkozni fogsz vele mások kódjában.

A három útvonaltípus egy pillantásra
AlakNeveHonnan indul?
https://…abszolútA világhálóról — másik webhelyre
oldalak/rolam.htmlrelatívA mostani fájltól — ezt használjuk
/oldalak/rolam.htmlgyökértől relatívA webhely gyökerétől — most kerüljük

7Horgonyok: ugrás az oldalon belül

Hosszú oldalnál hasznos, ha a tetején lévő tartalomjegyzékből egy adott szakaszhoz lehet ugrani. (Pont úgy, ahogy ennek a leckének a tartalomjegyzéke működik.)

Két lépésből áll:

  1. A célnak adsz egy id attribútumot.
  2. A linkben erre az id értékére hivatkozol # jellel.
Ugrás az oldalon belül — kattints a linkekre!
index.html
<h2 id="tetejen">Tartalom</h2>
<ul>
  <li><a href="#arak">Áraink</a></li>
  <li><a href="#kapcsolat">Kapcsolat</a></li>
</ul>

<h2 id="arak">Áraink</h2>
<p>Az árlistánk itt olvasható.</p>
<p><a href="#tetejen">Vissza a tetejére</a></p>

<h2 id="kapcsolat">Kapcsolat</h2>
<p>Hívj minket bizalommal.</p>
<p><a href="#tetejen">Vissza a tetejére</a></p>
Eredmény — próbáld ki!
Ez az előnézet szándékosan alacsony, hogy legyen mit görgetni. Kattints a linkekre: az oldal odaugrik. Az oldal nem töltődik újra — csak a görgetés pozíciója változik, és a cím végére odakerül a #arak rész.
AZ ID SZABÁLYAI
  • Egy id egy oldalon csak egyszer szerepelhet.
  • Ne legyen benne szóköz és ékezet: id="arak", nem id="áraink listája".
  • Számmal ne kezdődjön.
  • Bármely elemnek adható — nemcsak címsornak.
  • A linkben a # nem része az id értékének: id="arak"href="#arak".

Ugrás másik oldal adott pontjára

A kettő kombinálható: előbb az útvonal, aztán a # és az azonosító.

<a href="oldalak/rolam.html#hobbik">A hobbijaim</a>

Ez megnyitja a rolam.html-t, és rögtön a id="hobbik" elemhez görget.

A LEBEGŐ # LINK

Látni fogsz ilyen linket: <a href="#">. Ez „sehova" sem mutat — az oldal tetejére ugrik. Helykitöltőként használják, amíg nincs kész a céloldal. Kész munkában kerüld: a felhasználó kattint, és nem történik semmi értelmes.

8Új lapon megnyitás

Alapból a link ugyanabban a lapban nyílik meg. Ha új lapot akarsz, a target="_blank" attribútum kell.

Ugyanott vagy új lapon
index.html
<p>
  <a href="https://hu.wikipedia.org">
    Ugyanebben a lapban
  </a>
</p>

<p>
  <a href="https://hu.wikipedia.org"
     target="_blank"
     rel="noopener">
    Új lapon nyílik
  </a>
</p>
Eredmény a böngészőben
Ránézésre semmi különbség — a viselkedés tér el. Ez egyben figyelmeztetés is: a felhasználó sem látja előre, hogy új lap fog nyílni.
MINDIG TEDD MELLÉ: rel="noopener"

A target="_blank" mellé illik odaírni a rel="noopener"-t. Enélkül a megnyíló oldal korlátozott hozzáférést kap ahhoz a laphoz, ahonnan jött — ez biztonsági kockázat. Ma a legtöbb böngésző már magától véd, de a kiírása jó szokás.

Mikor?Döntés
Saját oldalaid közöttUgyanabban a lapban. A felhasználó számít rá, hogy a Vissza gomb működik.
Külső oldalraLehet új lap — így nem veszíti el a te oldaladat.
PDF, letöltésÚj lap indokolt.
Kitöltés alatt álló űrlaprólMindenképp új lap, különben elveszne a beírt adat.
NE ERŐLTESD

Sokan minden linket új lapon nyitnak — ez rossz szokás. A felhasználó maga is tud új lapot nyitni (középső egérgomb, Ctrl+kattintás). Ha te döntesz helyette, elveszed tőle a Vissza gombot, és teleszemeteled a böngészőjét.

9Speciális linkek

A href nemcsak weboldalra mutathat. Három hasznos formát érdemes ismerni.

E-mail, telefon, letöltés
index.html
<p>
  <a href="mailto:anna@example.com">
    Írj nekem e-mailt
  </a>
</p>

<p>
  <a href="tel:+36301234567">
    +36 30 123 4567
  </a>
</p>

<p>
  <a href="onelectrajz.pdf" download>
    Önéletrajz letöltése
  </a>
</p>
Eredmény a böngészőben
Mindhárom ugyanolyan linknek látszik — a különbség abban van, mi történik kattintásra.
FormaMi történik kattintásra?
mailto: Megnyílik a felhasználó levelezőprogramja, a címzett kitöltve. Nem küld levelet — csak megnyitja az ablakot.
tel: Telefonon: tárcsázás indul. Asztali gépen általában nem történik semmi. Írd a számot nemzetközi formában, szóköz nélkül.
download A böngésző letölti a fájlt, ahelyett hogy megnyitná. Logikai attribútum — nincs értéke.
TÁRGY ÉS SZÖVEG ELŐRE MEGADVA

A mailto: kiegészíthető:

<a href="mailto:anna@example.com?subject=Érdeklődés&body=Szia Anna!">
  Írj nekem
</a>

A ? után jön az első paraméter, a továbbiakat & választja el. Mivel az & entitáskezdő jel, HTML-ben &amp;-ként illik írni (4. lecke).

A KIÍRT E-MAIL-CÍM GYŰJTHETŐ

Ha a címed nyílt weboldalon szerepel, a spamküldő programok begyűjtik. Éles oldalakon ezért gyakoribb a kapcsolatfelvételi űrlap (9. lecke). Gyakorlófeladatokban nyugodtan használj mailto: hivatkozást kitalált címmel.

10A link állapotai

Egy link nem mindig ugyanúgy néz ki. A böngésző négy állapotot különböztet meg, és mindegyiket máshogy jeleníti meg:

ÁllapotMikor?Alapértelmezett szín
linkMég nem jártál ottkék
visitedMár meglátogattadlila
hoverRajta az egér(általában aláhúzás)
activeÉpp lenyomva tartodpiros
EZ MÁR CSS-TERÜLET

Mind a négy állapot átszínezhető — a 14. leckében (pszeudo-osztályok) meg is tanulod, hogyan. Most csak azt jegyezd meg, hogy léteznek, és hogy a „meglátogatott link más színű" nem hiba, hanem szolgáltatás.

NE VEDD EL AZ ALÁHÚZÁST INDOKLÁS NÉLKÜL

Kezdők kedvence: text-decoration: none minden linkre, mert „szebb". Csakhogy ha a link se nem aláhúzott, se nem más színű, akkor senki nem fogja tudni, hogy link. Ha elveszed az aláhúzást, adj helyette valami mást: erős színkülönbséget, keretet, gombszerű megjelenést.

11Tipikus hibák

HibaMi történik, és mi a megoldás?
Lehagyott https:// külső linknél A böngésző fájlnévnek nézi, és a saját mappádban keresi. Írd ki a protokollt.
Visszaperjel: kepek\profil.jpg A weben nem létezik. Mindig sima perjel.
Kezdő perjel: /kepek/profil.jpg Fájlként megnyitva a lemez gyökerét keresi. Tanulás közben hagyd el a kezdő perjelet.
Rossz kis/nagybetű a fájlnévben A saját géped elnézi, a szerver nem. Írj mindent kisbetűvel.
Elfelejtett ../ Almappából a szülőmappa fájljára hivatkozol. A böngésző az almappában keresi, és nem találja.
Két id ugyanazzal az értékkel A horgony csak az elsőre ugrik. Az id egyedi.
# az id értékében id="#arak" hibás. A # csak a linkben van: href="#arak".
Linkbe ágyazott link Érvénytelen. Egy <a>-ba nem tehetsz másik <a>-t.
HOGYAN KERESD MEG A TÖRÖTT LINKET?
  1. Kattints rá, és nézd meg a böngésző címsorát. Az megmutatja, hova próbált menni.
  2. Hasonlítsd össze a valódi mappaszerkezettel — általában azonnal látszik az eltérés.
  3. Képnél és CSS-nél: F12Console. Ott kiírja, melyik fájlt nem találta meg.

Önellenőrző kérdések

Az útvonalas kérdésekhez használd a lecke mappaszerkezetét (5. pont). Előbb válaszolj magadban!

1. Az oldalak/kapcsolat.html-ben vagy. Hogyan hivatkozol az index.html-re?

../index.html — egy szintet ki kell lépni az oldalak mappából.

2. Az oldalak/projektek/elso.html-ben vagy. Hogyan hivatkozol a kepek/hatter.jpg képre?

../../kepek/hatter.jpg — két szintet fel a gyökérig, majd be a kepek mappába.

3. Mi a baj ezzel: <a href="www.index.hu">Hírek</a>?

Hiányzik a protokoll. A böngésző így egy www.index.hu nevű fájlt keres a saját mappádban. Helyesen: href="https://www.index.hu".

4. Miért nem ajánlott a /kepek/profil.jpg alak, amíg tanulsz?

A kezdő perjel a webhely gyökerét jelenti. Ha a fájlt duplán kattintva nyitod meg (file:///), akkor a gyökér a merevlemez gyökere lesz (C:\), és minden hivatkozás eltörik. Ugyanez történik, ha az oldal egy almappába kerül a szerveren.

5. Két lépésben: hogyan készítesz ugrópontot egy „Áraink" című szakaszhoz?

1. A célnak adsz azonosítót: <h2 id="arak">Áraink</h2>. 2. A linkben #-tel hivatkozol rá: <a href="#arak">Áraink</a>. A # nem része az id értékének.

6. Egy űrlap kitöltése közben a felhasználó rákattint egy „Adatvédelmi tájékoztató" linkre. Ugyanabban a lapban nyisd, vagy újban? Miért?

Újban (target="_blank" rel="noopener"). Ha ugyanabban a lapban nyílna meg, elveszne a már beírt űrlapadat.

7. Miért rossz linkszöveg a „Kattints ide"?

Mert önmagában nem mondja meg, hova vezet. A képernyőolvasók és egyes felhasználók kilistázzák egy oldal összes linkjét a környező szöveg nélkül — ilyenkor öt darab „kattints ide" megkülönböztethetetlen. A linkszöveg írja le a célt: „Áraink", „Önéletrajz letöltése".

8. A linkjeidről levetted az aláhúzást, mert szebb így. Mi lehet a probléma?

Ha se aláhúzás, se jelentős színkülönbség nincs, a felhasználó nem tudja, hogy az egy link. Ha elveszed az aláhúzást, adj helyette más egyértelmű jelzést: erős színt, keretet, gombszerű megjelenést.

12Összefoglalás

  1. A link: <a href="cél">szöveg</a>. A href a cél, a tartalom a kattintható felület.
  2. A linkszöveg írja le a célt. Próba: olvasd fel csak a linkeket — érthetők?
  3. Abszolút útvonal (https://…) csak külső oldalra. A protokollt soha ne hagyd le.
  4. Relatív útvonal a saját oldalaidhoz — a kérdés mindig: „innen hogyan jutok oda?"
  5. mappanev/ = lefelé · ../ = felfelé · ezek kombinálhatók: ../kepek/profil.jpg.
  6. Mindig /, soha \. A fájlnév kis/nagybetűje számít.
  7. A kezdő perjelet (/kepek/…) tanulás közben kerüld.
  8. Horgony: a célon id="valami", a linkben href="#valami". Az id egyedi, ékezet és szóköz nélküli.
  9. target="_blank" + rel="noopener" — de csak indokolt esetben.
  10. Speciális linkek: mailto:, tel:, és a download attribútum.
  11. A linknek négy állapota van; az aláhúzást csak akkor vedd el, ha adsz helyette más jelzést.
  12. Törött link keresése: nézd meg a címsort kattintás után, és az F12 → Console üzeneteit.