Tag <img> to jeden z najważniejszych elementów HTML do osadzania obrazów (JPG, PNG, GIF, SVG) na stronie. Jest elementem pustym (bez znacznika zamykającego), a jego prawidłowe użycie wpływa na dostępność, wydajność i SEO.
Podstawowa składnia tagu <img>
Najprostszy przykład wygląda tak:
<img src="obraz.jpg" alt="Opis obrazu">
Minimalny zestaw atrybutów to src (źródło pliku) i alt (tekst alternatywny). Tag nie „osadza” binarnie pliku w HTML — rezerwuje miejsce i wiąże obraz ze stroną dzięki atrybutom.
Kluczowe atrybuty tagu <img>
Poniżej zestaw atrybutów, które najczęściej wykorzystasz, wraz z ich przeznaczeniem:
- src – źródło obrazu: lokalna ścieżka (np.
images/zdjecie.jpg) lub pełny URL (np.https://example.com/zdjecie.jpg); - alt – tekst alternatywny widoczny przy błędzie ładowania i odczytywany przez czytniki ekranu; obowiązkowy dla dostępności;
- width / height – deklaracja wymiarów (w px) rezerwująca miejsce i ograniczająca przeskoki layoutu (CLS);
- title – podpowiedź wyświetlana po najechaniu kursorem, przydatna jako kontekstowy opis;
- loading – kontrola ładowania:
lazy(leniwe),eager(natychmiastowe); pomaga przyspieszyć stronę; - srcset – lista wariantów obrazu o różnych rozdzielczościach/szerokościach do obrazów responsywnych;
- sizes – informacja dla przeglądarki, jaką szerokość (CSS) będzie miał obraz w różnych warunkach, aby dobrać właściwy plik z
srcset; - decoding – strategia dekodowania:
async,synclubauto; - fetchpriority – priorytet pobierania:
high,low,auto; użyteczne dla obrazów nad zawinięciem (above the fold); - referrerpolicy – kontrola nagłówka Referer przy pobieraniu obrazu z innych domen;
- crossorigin – tryb CORS (
anonymouslubuse-credentials) dla obrazów wykorzystywanych np. w canvas; - usemap / ismap – obsługa map obrazów:
usemappo stronie klienta,ismappo stronie serwera; - style – szybka stylizacja inline (zalecane tylko incydentalnie — lepiej przenieść do CSS).
Zawsze dodawaj atrybut alt — to wymóg dostępności i wsparcie dla SEO. Puste alt="" stosuj wyłącznie przy obrazach czysto dekoracyjnych.
Przykłady praktycznego użycia tagu <img>
1. Wstawianie obrazu z lokalnej ścieżki
Umieść plik w katalogu projektu (np. images/
Przykładowy kod:
<img src="images/zdjecie.jpg" alt="Przykładowe zdjęcie z folderu projektu">
Rozwiązanie szybkie i niezależne od zewnętrznych serwerów.
2. Obraz z zewnętrznego URL
Gdy korzystasz z hostingu zewnętrznego, użyj pełnego adresu:
Przykładowy kod:
<img src="https://example.com/zdjecie.jpg" alt="Przykładowe zdjęcie z internetu">
Uwaga: sprawdź prawa autorskie i miej świadomość, że zniknięcie pliku na serwerze zewnętrznym spowoduje błąd ładowania — solidny alt to najlepszy fallback.
3. Obraz jako link
Obrazy często pełnią rolę przycisków lub banerów. Umieść <img> wewnątrz odnośnika:
Przykładowy kod:
<a href="https://example.com">
<img src="przejdz.jpg" alt="Przejdź do strony głównej" title="Wejdź na stronę">
</a>
To idealne rozwiązanie dla logotypów czy miniaturek produktów.
4. Dostosowywanie rozmiaru i szybka stylizacja
Gdy potrzebujesz szybkiego efektu, możesz użyć atrybutów i stylów inline:
Przykładowy kod:
<img src="kwiat.jpg" alt="Czerwony kwiat" width="400" height="300" style="border:2px solid red; border-radius:10px;">
Najlepszą praktyką jest przeniesienie stylów do CSS dla lepszej separacji logiki i prezentacji.
5. Semantyczne osadzanie z <figure> i <figcaption>
Dla lepszego SEO i czytelności możesz połączyć obraz z podpisem:
Przykładowy kod:
<figure>
<img src="diagram.png" alt="Diagram procesu HTML" loading="lazy">
<figcaption>Schemat wstawiania obrazów w HTML.</figcaption>
</figure>
6. Obrazy responsywne z srcset i sizes
Wybór najlepszego wariantu pliku dla danego ekranu poprawia jakość i wydajność:
Przykładowy kod:
<img
src="zdjecie-800.jpg"
srcset="zdjecie-400.jpg 400w, zdjecie-800.jpg 800w, zdjecie-1200.jpg 1200w"
sizes="(max-width: 600px) 90vw, (max-width: 1200px) 50vw, 800px"
width="800"
height="533"
alt="Krajobraz o zachodzie słońca"
loading="lazy">
Integracja z CSS i JavaScript
Pełnię możliwości <img> odblokujesz, łącząc go z CSS i JavaScript. Unikaj stylów inline — zamiast tego używaj klas.
Przykłady CSS
Najpierw nadaj klasę w HTML, a potem ostyluj ją w arkuszu CSS:
HTML:
<img src="zdjecie.jpg" alt="Stylizowany obraz" class="obraz-ramka">
CSS:
.obraz-ramka {
border: 3px solid #007bff;
border-radius: 8px;
box-shadow: 0 4px 8px rgba(0,0,0,0.1);
transition: transform 0.3s ease;
}
.obraz-ramka:hover {
transform: scale(1.05);
}
Dla responsywności, zadbaj o skalowanie obrazów w kontenerach:
img {
max-width: 100%;
height: auto;
}
Przykłady JavaScript
Możesz dynamicznie zmieniać źródło obrazu lub obsłużyć błąd ładowania:
Zmiana obrazu po kliknięciu:
document.querySelector('img').addEventListener('click', function() {
this.src = 'nowy-obraz.jpg';
this.alt = 'Nowy opis';
});
Fallback przy błędzie ładowania:
const img = document.querySelector('img');
img.onerror = function() {
this.src = 'fallback.jpg';
this.alt = 'Obraz zastępczy';
};
Gdzie i kiedy używać tagu <img>?
Najczęstsze zastosowania prezentują się następująco:
- blogi i portale – ilustracje w tekście zwiększają zaangażowanie i czas na stronie;
- strony edukacyjne – diagramy i infografiki wspierają zrozumienie trudnych zagadnień;
- portfolio – wysokiej jakości podgląd prac, zdjęć i projektów;
- e‑commerce – miniaturki i galerie produktów, często połączone z linkami do kart produktów.
W kwestii optymalizacji warto:
- kompresować obrazy (np. TinyPNG, Squoosh),
- wybierać nowoczesne formaty WebP/AVIF z fallbackiem do JPG/PNG,
- testować wygląd i wydajność na urządzeniach mobilnych oraz wolniejszych łączach.
Najczęstsze błędy i dobre praktyki
Poniżej lista pułapek oraz zasad, które warto wdrożyć:
- błąd – brak
altpogarsza dostępność i SEO; - błąd – niepodanie
width/heightpowoduje przeskoki layoutu (CLS w Core Web Vitals); - dobra praktyka – stosuj
loading="lazy"dla obrazów poniżej „folda” (poza pierwszym ekranem); - dobra praktyka – testuj stronę w trybie bez obrazów lub w przeglądarkach tekstowych;
- responsywność – dodaj w CSS:
img { max-width: 100%; height: auto; }.
Głębszy bieżnik skuteczniej odprowadza wodę spod opony, co zmniejsza ryzyko poślizgu i polepsza warunki jazdy.