Przeglądarka widzi img, idzie po plik pod adresem z src i wkleja go w to miejsce strony.
Adres działa jak w łączach: img/cat.jpg to plik w folderze img, obok pliku strony. Bez polskich liter i spacji w nazwach.
MDN: HTML images · developer.mozilla.org/en-US/docs/Learn_web_development/Core/Structuring_content/HTML_images
Część 1 · atrybut alt
alt: obraz opisany słowami
Osoba niewidoma słucha strony przez czytnik ekranu. Czytnik nie widzi zdjęcia, czyta alt. Ten sam tekst pokaże się, gdy plik się nie wczyta (zła ścieżka, brak sieci).
Sytuacja
Piszecie
zdjęcie jest treścią
alt="Pingwin na plaży", nie alt="zdjęcie"
ozdoba (tło, kreska, ikona przy tekście)
alt="": czytnik pomija, nie traci czasu
obraz jest już opisany w tekście obok
alt="": nie czytamy dwa razy
Test: zamknijcie oczy i posłuchajcie, czy sam alt mówi Wam, co jest na obrazie. Puste alt to decyzja, brak alt to błąd.
Ciekawostka z Wikipedii: atrybut alt trafił do szkicu HTML 1.2 już w 1993 roku, gdy większość stron oglądano w przeglądarkach tekstowych bez obrazów. Obowiązkowy dla znacznika img stał się dopiero w HTML 4.01 z 1999 roku, sześć lat później.
MDN: HTML images · developer.mozilla.org/en-US/docs/Learn_web_development/Core/Structuring_content/HTML_images · ciekawostka: en.wikipedia.org/wiki/Alt_attribute
Część 1 · width i height
Po co wymiary, skoro obraz i tak ma swój rozmiar?
Plik z obrazem dociera później niż tekst. Bez wymiarów przeglądarka nie wie, ile miejsca zostawić, i przesuwa tekst, gdy obraz dotrze. Znacie to z telefonu: klikacie, a strona skacze.
Z width i height miejsce jest zarezerwowane od razu. Wpisujecie prawdziwe wymiary pliku (Windows: prawy klik, Właściwości, Szczegóły), same liczby, bez „px”.
MDN: HTML images · developer.mozilla.org/en-US/docs/Learn_web_development/Core/Structuring_content/HTML_images
Część 2 · formaty plików
Pięć końcówek, pięć zadań
Format
Do czego?
Przezroczyste tło
Animacja
JPG (JPEG)
zdjęcia; mały plik, ale gubi drobne szczegóły (kompresja stratna)
nie
nie
PNG
grafika, logo, zrzuty ekranu; nic nie gubi (bezstratny), większy plik
tak
nie
SVG
ikony, wykresy, rysunki; wektor, ostry w każdym powiększeniu
tak
tak
WebP
zdjęcia i grafika; nowoczesny, 25–35 % mniejszy od JPG
tak
tak
GIF
proste animacje i proste obrazki; do zdjęć za słaby
tak
tak
Kompresja = pakowanie pliku, żeby był mniejszy. Stratna wyrzuca szczegóły, których oko nie zauważy (dobre dla zdjęć). Bezstratna zachowuje każdy piksel (dobre dla logo i tekstu na zrzucie ekranu).
MDN: Image file type and format guide · developer.mozilla.org/en-US/docs/Web/Media/Guides/Formats/Image_types
Część 2 · raster i wektor
Kwadraciki czy przepis: co się dzieje przy powiększeniu?
Raster to zdjęcie z aparatu: milion kolorowych kropek. Powiększacie i widzicie kwadraty, a plik rośnie z każdym pikselem.
Wektor to tekst: „narysuj koło o promieniu 120”. Ten sam plik na zegarku i na billboardzie, kilka kilobajtów. Dlatego ikony i logo robi się w SVG.
MDN: Image file type and format guide · developer.mozilla.org/en-US/docs/Web/Media/Guides/Formats/Image_types
Część 2 · rozmiar pliku
Ile waży Wasza strona?
Rozmiar pliku liczymy w bajtach. Kilobajt (kB) to tysiąc bajtów, megabajt (MB) to tysiąc kilobajtów. Im więcej, tym dłużej strona się ładuje, zwłaszcza na telefonie.
Plik
Ile mniej więcej waży?
cała ta prezentacja (tekst HTML)
ok. 30 kB
ikona SVG
kilka kB
zdjęcie prosto z telefonu
kilka MB, czyli sto razy więcej niż cała strona
Zanim wrzucicie zdjęcie na stronę: zmniejszcie wymiary (do rozmiaru, w jakim ma być widoczne) i zapiszcie jako JPG lub WebP. Rozmiar sprawdzacie w Windowsie: prawy klik, Właściwości.
MDN: Image file type and format guide · developer.mozilla.org/en-US/docs/Web/Media/Guides/Formats/Image_types
Część 3 · figure i figcaption
Podpis pod obrazem: figure i figcaption
<figure><imgsrc="img/tatra.jpg"alt="Giewont nad Zakopanem"width="600"height="400"><figcaption>
Giewont, wycieczka klasowa.
</figcaption></figure>
figure spina obraz z podpisem w jedną całość, jak zdjęcie z podpisem w gazecie. figcaption to podpis, który widzą wszyscy.
alt zastępuje obraz, gdy go nie ma. Podpis nie zastępuje alt: dajecie oba.
MDN: HTML images · developer.mozilla.org/en-US/docs/Learn_web_development/Core/Structuring_content/HTML_images
Część 3 · obraz jako łącze
Obraz jako łącze: img w środku a
Łącze poznaliście na poprzedniej lekcji. Zamiast tekstu wkładacie do niego obraz i cały obraz staje się klikalny.
Folder img w swoim folderze, w nim 3 zdjęcia: własne albo z commons.wikimedia.org (otwórz plik, kliknij mniejszy rozmiar z listy „Inne rozdzielczości”, prawy klik, „Zapisz grafikę jako”). Nazwy bez polskich liter i spacji.
Każde zdjęcie przepuść przez edytor online squoosh.app i zapisz lżejszą wersję.
Plik gallery.html ze szkieletem i h1 „Moja galeria”.
Każde zdjęcie w figure: img z src, sensownym alt, prawdziwymi width i height, pod nim figcaption (przy zdjęciu z Commons: autor).
Jedno zdjęcie zrób łączem do strony, z której pochodzi.
Sprawdź w przeglądarce.
Ma się pojawić: trzy zdjęcia z podpisami, żadnej ikony zepsutego obrazu, łapka nad jednym zdjęciem. Test: zepsuj literę w jednym src i zobacz w jego miejscu swój alt.
Do każdej sytuacji dopiszcie format pliku (JPG, PNG, SVG, WebP, GIF) i jedno słowo dlaczego:
Zdjęcie z wycieczki klasowej, 30 sztuk w galerii.
Logo szkoły na kolorowym pasku, tło ma być przezroczyste.
Ikona lupy w polu wyszukiwania, ostra na każdym ekranie.
Krótka zapętlona animacja „ładowanie…”.
Zrzut ekranu z instrukcją, tekst na nim musi być czytelny.
kryteria: MDN: Image file type and format guide
Pytania kontrolne
Trzy pytania na koniec
Kto korzysta z alt i kiedy zostawiacie go pustego?
Co się dzieje z tekstem na stronie, gdy obraz nie ma width i height?
Czym różni się figcaption od alt?
Na następnej lekcji: tabele w HTML, czyli dane w wierszach i kolumnach.
Rozkład: Obrazy w HTML → Tabele w HTML
Z realnych wdrożeń
A jak to wygląda w produkcji?
Na lekcji
W produkcji
Status
img z alt, width i height
Zawsze. Brak wymiarów to skoki układu, brak alt wychodzi w każdym audycie dostępności.
nadal w użyciu
JPG i PNG
Zastępowane przez WebP (25–35 % mniejszy od JPG, 26 % mniejszy od PNG) i AVIF (ok. 50 % mniejszy od JPG). Stare formaty zostają jako zapas dla starych przeglądarek.
zastępowane
obraz ładuje się od razu
loading="lazy": zdjęcia poniżej ekranu ładują się dopiero, gdy użytkownik przewija. Bez width i height taki obraz może się nigdy nie wczytać, więc tu wymiary są szczególnie ważne.
nadal w użyciu
GIF do animacji
Ciężki; MDN radzi do animacji WebP, AVIF albo APNG. GIF zostaje do prostych obrazków.
zastępowane
zdjęcie wrzucone jak jest
Każdy plik przed wgraniem przechodzi przez kompresor (np. squoosh.app), często robi to automatycznie serwer.
tak robię w projektach
MDN: <img>, Image file type and format guide · developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/img