<img>Znacznik <img> to element typu inline-block domyślnie (zachowuje się jak tekst, ale można nadać wymiary).
W CSS można go stylizować bardzo szeroko — zarówno pod względem rozmiaru, jak i pozycjonowania czy efektów wizualnych.
| Właściwość | Opis | Przykład |
|---|---|---|
width, height | Szerokość i wysokość obrazu (zastępują atrybuty HTML) | width: 100%; height: auto; |
max-width, max-height | Ograniczenia wymiarów, przydatne dla responsywności | max-width: 100%; |
object-fit | Jak obraz dopasowuje się do kontenera (fill, cover, contain, none, scale-down) | object-fit: cover; |
object-position | Pozycja obrazu wewnątrz kontenera | object-position: center top; |
display | Zmienia sposób wyświetlania (np. block, inline, flex) | display: block; |
vertical-align | Wyrównanie w pionie względem tekstu | vertical-align: middle; |
| Właściwość | Opis | Przykład |
|---|---|---|
border | Ramka wokół obrazu | border: 2px solid #ccc; |
border-radius | Zaokrąglenie rogów (np. do zdjęć profilowych) | border-radius: 50%; |
box-shadow | Cień wokół obrazu | box-shadow: 0 4px 10px rgba(0,0,0,0.2); |
clip-path | Wycinanie obrazu w kształt (np. koło, wielokąt) | clip-path: circle(50%); |
| Właściwość | Opis | Przykład |
|---|---|---|
filter | Nakłada efekty graficzne (grayscale, blur, brightness, itp.) | filter: grayscale(80%); |
opacity | Przezroczystość obrazu | opacity: 0.8; |
transition | Płynne przejścia przy zmianie stylu (np. efekt hover) | transition: transform 0.3s ease; |
transform | Obracanie, skalowanie, przesuwanie obrazu | transform: scale(1.1); |
img:hover {
transform: scale(1.05);
filter: brightness(1.1);
cursor: pointer;
}
| Aspekt | HTML | CSS |
|---|---|---|
| Rola | Wstawienie obrazu i określenie źródła, opisu, rozdzielczości | Stylizacja, rozmiar, pozycjonowanie, efekty wizualne |
| Kluczowe atrybuty / właściwości | src, alt, width, height, loading, srcset | width, height, object-fit, border-radius, filter, transform |
| Najlepsze praktyki | Używaj alt i loading="lazy" | Używaj max-width: 100%; height: auto; dla responsywności |
Cel: Nauczyć się nadawać styl obrazowi.
Instrukcja:
Wstaw dowolny obraz w HTML.
W sekcji <style> nadaj mu:
szerokość 300px,
ramkę (border),
lekki cień (box-shadow).
Podpowiedź:
img {
width: 300px;
border: 2px solid #333;
box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
Cel: Zastosować border-radius.
Instrukcja:
Użyj tego samego obrazu.
Dodaj mu zaokrąglone rogi (border-radius: 20px;).
Następnie spróbuj zrobić go okrągłym (border-radius: 50%;).
Cel: Obraz ma dopasowywać się do szerokości ekranu.
Instrukcja:
Ustaw w CSS:
max-width: 100%;
height: auto;
}
Zmień rozmiar okna przeglądarki i obserwuj efekt.
Cel: Poznać właściwości transform, filter i transition.
Instrukcja:
Ustaw styl dla obrazka, by miał efekt po najechaniu:
lekkie powiększenie (scale(1.1)),
rozjaśnienie (filter: brightness(1.2)),
płynne przejście (transition: 0.3s).
Przykład:
transition: transform 0.3s ease, filter 0.3s ease;
}
img:hover {
transform: scale(1.1);
filter: brightness(1.2);
}
object-fit)Cel: Nauczyć się dopasowywać obraz do określonych wymiarów.
Instrukcja:
Stwórz prostokątny kontener, np.:
<img src="krajobraz.jpg" alt="Krajobraz">
</div>
W CSS nadaj:
width: 300px;
height: 200px;
border: 2px solid #ccc;
overflow: hidden;
}
img {
width: 100%;
height: 100%;
object-fit: cover;
}
Przetestuj różne wartości: cover, contain, fill, none.
Cel: Użyć właściwości vertical-align.
Instrukcja:
Umieść obraz i tekst w tym samym wierszu:
<img src="icon.png" alt="Ikona" width="40">
Tekst obok ikony
</p>
W CSS zastosuj różne wartości vertical-align:top, middle, bottom, text-top, text-bottom.
Cel: Użyć filtra grayscale.
Instrukcja:
Wstaw kilka obrazów obok siebie.
Ustaw im:
filter: grayscale(100%);
transition: filter 0.3s;
}
img:hover {
filter: grayscale(0%);
}
Obrazy będą czarno-białe, a po najechaniu odzyskają kolor.
Cel: Zastosować opacity.
Instrukcja:
Wstaw dowolny obraz.
W CSS dodaj:
opacity: 0.6;
transition: opacity 0.3s;
}
img:hover {
opacity: 1;
}
Cel: Wycinać obraz w określony kształt.
Instrukcja:
Wstaw obraz i zastosuj:
width: 300px;
clip-path: circle(50%);
}
Możesz eksperymentować z innymi kształtami:
ellipse(50% 30%)
polygon(0 0, 100% 0, 50% 100%) (trójkąt)
Cel: Połączyć kilka właściwości CSS w animację.
Instrukcja:
Dodaj obraz i w CSS:
transition: transform 0.5s ease, filter 0.5s ease;
}
img:hover {
transform: rotate(5deg) scale(1.05);
filter: brightness(1.2);
cursor: pointer;
}