Mapa odsyłaczy <img usemap, map, area>
Jak dodać kilka odnośników (linków, hiperłączy, odsyłaczy hipertekstowych) na jednym obrazku?
Mapa odsyłaczy <img usemap, map, area>
<img src="ścieżka dostępu do obrazka" alt="tekst alternatywny" usemap="#nazwa_mapy"> <map id="nazwa_mapy" name="nazwa_mapy"> <area shape="kształt" coords="współrzędne" href="adres" alt="tekst alternatywny"> <area shape="kształt" coords="współrzędne" href="adres" alt="tekst alternatywny"> (...) </map>
- ścieżka dostępu do obrazka
- Lokalizacja na dysku, gdzie znajduje się żądany plik obrazka.
- nazwa_mapy
- Dowolny tekst, byleby był on taki sam w pierwszej i w drugiej linii, a dodatkowo w pierwszym wierszu musi być poprzedzony znakiem krzyżyka (#). Na jednej stronie nie mogą się znajdować dwie mapy o takiej samej nazwie!
- (...)
- Dalsze polecenia typu:
<area shape="kształt" coords="współrzędne" href="adres" alt="tekst alternatywny">
, które stworzą następne aktywne pola na obrazku. - kształt
- Kształt obszaru w mapie odsyłaczy:
- rect - pole ograniczone prostokątem
- poly - pole ograniczone wielokątem nieregularnym
- circle - koło
- współrzędne
- "xp,yp, xk,yk" - w przypadku prostokąta (rect):
- xp - współrzędna pozioma lewego-górnego wierzchołka prostokąta
- yp - współrzędna pionowa lewego-górnego wierzchołka
- xk - współrzędna pozioma prawego-dolnego wierzchołka prostokąta
- yk - współrzędna pionowa prawego-dolnego wierzchołka
- "x1,y1, x2,y2, x3,y3..." - w przypadku wielokąta (poly):
- "xn,yn - współrzędne poziome i pionowe kolejnych wierzchołków wielokąta
- "x,y, r" - w przypadku koła (circle):
- "x,y" - współrzędne środka
- "r" - długość promienia
We wszystkich przypadkach współrzędne są liczone od lewego górnego wierzchołka obrazka, który stanowi punkt zerowy układu współrzędnych.
- "xp,yp, xk,yk" - w przypadku prostokąta (rect):
- adres
- Wartość tworzona analogicznie jak w przypadku odsyłaczy do: podstrony, etykiety, adresu internetowego, poczty e-mail czy dowolnych innych odsyłaczy (w zależności od wybranego typu odsyłacza).
Po wywołaniu tej komendy, zostanie wczytany obrazek o podanej ścieżce dostępu. Następnie będzie on podzielony na kilka pól (w sposób niewidoczny), z których każde będzie przyporządkowane oddzielnemu odsyłaczowi. Dzięki temu na tylko jednym rysunku możemy umiejscowić więcej niż jeden odnośnik.
Wiele edytorów HTML posiada wbudowany generator mapy odsyłaczy, dzięki któremu można w prosty i szybki sposób określić współrzędnie poszczególnych obszarów, wskazując kolejne punkty myszką na wyświetlonym obrazku. W przypadku bardzo skomplikowanych obszarów, rozważ użycie serwerowej mapy odsyłaczy.
Istnieją przypadki, kiedy obrazek może nie wyświetlić się na ekranie - np. z powodu problemów z połączeniem internetowym, nieobsługiwanym formatem graficznym albo gdy użytkownik po prostu wyłączy wyświetlanie grafiki w swojej przeglądarce. W takiej sytuacji nawet jeśli każdy obszar w mapie odsyłaczy posiada atrybut alt="..."
, przeglądarki mogą nie wyświetlić jego wartości na ekranie.
Jeśli obrazek mapy odsyłaczy nie wyświetli się na ekranie, użytkownik nie będzie wiedział, w co może kliknąć! Dlatego warto również umieścić gdzieś zwykłe odsyłacze hipertekstowe, prowadzące do tych samych dokumentów.
Przykład <img usemap, map, area>
<img src="odsylacz.gif" alt="Mapa odsyłaczy" usemap="#nazwa_mapy" width="200" height="70"> <map id="nazwa_mapy" name="nazwa_mapy"> <area shape="rect" coords="5,5, 56,65" href="..." alt="..."> <area shape="poly" coords="61,64, 106,4, 133,56" href="..." alt="..."> <area shape="circle" coords="166,35, 31" href="..." alt="..."> </map>

Aby usunąć obramowanie wokół obrazka, należy podać atrybut style="border: 0"
dla znacznika <img>
.

Nakładanie obszarów
Załóżmy, że chcemy uzyskać następujący efekt: definiujemy na przygotowanym obrazku jeden okrągły i jeden trójkątny obszar z odsyłaczami, ale chcemy dodatkowo, aby kliknięcie na dowolnych pozostałych częściach grafiki, odsyłało na osobny adres. Możemy tego dokonać definiując na końcu trzeci kształt, o takich samych rozmiarach jak wymiary całego obrazka. Jeżeli powierzchnie, zdefiniowane na obrazku za pomocą znacznika <area>
, nakładają się, pierwszeństwo mają te obszary, które zostały zdefiniowane wcześniej. Dlatego kształt wstawiony na końcu, nie przykrywa ustalonych wcześniej obszarów, ale zostaje umieszczony pod nimi.
Pytania i odpowiedzi <img usemap, map id>
Co to jest mapa odsyłaczy?
Mapa odsyłaczy to element używany w języku HTML do tworzenia klikalnych obszarów na obrazkach, które prowadzą do różnych lokalizacji na stronie internetowej.
W jaki sposób przypisać mapę odsyłaczy do obrazka w HTML?
W tym celu do znacznika obrazka należy dodać atrybut usemap="#..."
, a do znacznika mapy odsyłaczy - odpowiadający mu atrybut id="..."
. Na przykład: <img src="..." alt="..." usemap="#nazwa_mapy"> <map id="nazwa_mapy">...</map>
. Należy pamiętać, że w tym samym dokumencie HTML co prawda może być wstawiona dowolna liczba różnych map odsyłaczy, ale każda z nich musi mieć inną nazwę. W przeciwnym razie przeglądarka nie wiedziałaby, która z nich odnosi się do wskazanego obrazka. Nie można również przypisać więcej niż jednej mapy odsyłaczy do tego samego obrazka.
Przeglądarki
![]() Chrome | ![]() Firefox | ![]() Edge | ![]() Opera | ![]() Safari | |
---|---|---|---|---|---|
<area> | 1 2008-12-11 | 1 2004-11-09 | 12 2015-07-29 | 15 2013-07-02 | 1 2003-06-23 |
<area alt> | 1 2008-12-11 | 1 2004-11-09 | 12 2015-07-29 | 15 2013-07-02 | 1 2003-06-23 |
<area coords> | 1 2008-12-11 | 1 2004-11-09 | 12 2015-07-29 | 15 2013-07-02 | 1 2003-06-23 |
<area href> | 1 2008-12-11 | 1 2004-11-09 | 12 2015-07-29 | 15 2013-07-02 | 1 2003-06-23 |
<area shape> | 1 2008-12-11 | 1 2004-11-09 | 12 2015-07-29 | 15 2013-07-02 | 1 2003-06-23 |
<map> | 1 2008-12-11 | 1 2004-11-09 | 12 2015-07-29 | 15 2013-07-02 | 1 2003-06-23 |
<map name> | 1 2008-12-11 | 1 2004-11-09 | 12 2015-07-29 | 15 2013-07-02 | 1 2003-06-23 |