← Lekcje
HTML · lekcja 05

Obrazy w HTML

Jak wstawić zdjęcie tak, żeby działało u każdego?

  1. Znacznik img: skąd plik, co przedstawia, jak duży
  2. Formaty: JPG, PNG, SVG, WebP, GIF i waga strony
  3. Podpis pod obrazem i obraz jako łącze
  4. Ćwiczenie: galeria trzech zdjęć
Rozgrzewka · 3 minuty

Trzy pytania z poprzedniej lekcji

  1. Który znacznik robi łącze i w którym atrybucie wpisujecie adres?
  2. Czym różni się adres contact.html od https://mdn.dev/?
  3. Plik prices.html leży w folderze podstrony obok index.html. Co wpisujecie w href?
MDN: Creating links · developer.mozilla.org/en-US/docs/Learn_web_development/Core/Structuring_content/Creating_links
Część 1 · znacznik img

Obraz to jeden znacznik z czterema naklejkami

<img src="img/cat.jpg" alt="Rudy kot" width="600" height="400"> bez zamknięcia:nie ma </img> src = skąd wziąć plik:folder img obok index.html alt = co jest na obrazie,czytane, gdy obrazu nie widać width, height= wymiary w pikselach Piksel = jedna kropka ekranu. 600 na 400 pikseli to szerokość i wysokość obrazu.
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).

SytuacjaPiszecie
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 obokalt="": 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?

bez width i height 1. strona się wczytuje tu czytacie tekst 2. obraz dotarł tekst uciekł w dół z width i height 1. zarezerwowane miejsce 600 × 400 2. obraz dotarł tekst stoi w miejscu
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ń

FormatDo czego?Przezroczyste tłoAnimacja
JPG (JPEG)zdjęcia; mały plik, ale gubi drobne szczegóły (kompresja stratna)nienie
PNGgrafika, logo, zrzuty ekranu; nic nie gubi (bezstratny), większy pliktaknie
SVGikony, wykresy, rysunki; wektor, ostry w każdym powiększeniutaktak
WebPzdjęcia i grafika; nowoczesny, 25–35 % mniejszy od JPGtaktak
GIFproste animacje i proste obrazki; do zdjęć za słabytaktak

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 (JPG, PNG, WebP, GIF): siatka pikseli koło powiększone 8×: widać schodki wektor (SVG): przepis na rysunek to samo koło 8×: gładkie, bo przeglądarka rysuje je od nowa <circle r="120" fill="…"/>
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.

PlikIle mniej więcej waży?
cała ta prezentacja (tekst HTML)ok. 30 kB
ikona SVGkilka kB
zdjęcie prosto z telefonukilka 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>
  <img src="img/tatra.jpg"
       alt="Giewont nad Zakopanem"
       width="600" height="400">
  <figcaption>
    Giewont, wycieczka klasowa.
  </figcaption>
</figure>
<figure> <img> <figcaption> Giewont, wycieczka klasowa.
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.

<a href="img/tatry_duze.jpg">
  <img src="img/tatra.jpg" alt="Giewont, powiększ" width="600" height="400">
</a>
MDN: Creating links · developer.mozilla.org/en-US/docs/Learn_web_development/Core/Structuring_content/Creating_links
Obrazy · egzamin

Tak pytają na egzaminie

1. Atrybutem określającym lokalizację pliku graficznego dla znacznika <img> jest

  1. alt
  2. src
  3. href
  4. link

2. Aby dostosować stronę internetową dla niewidomych, należy nadać wyświetlanym za pomocą znacznika img obrazom atrybut

  1. alt
  2. src
  3. text
  4. style
CKE, EE.09 styczeń 2021, zad. 27 · CKE, EE.09 czerwiec 2020, zad. 33
Ćwiczenie 1 · przy komputerze · 15 minut

Ćwiczenie 1: galeria trzech zdjęć

  1. 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.
  2. Każde zdjęcie przepuść przez edytor online squoosh.app i zapisz lżejszą wersję.
  3. Plik gallery.html ze szkieletem i h1 „Moja galeria”.
  4. Każde zdjęcie w figure: img z src, sensownym alt, prawdziwymi width i height, pod nim figcaption (przy zdjęciu z Commons: autor).
  5. Jedno zdjęcie zrób łączem do strony, z której pochodzi.
  6. 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.

pobieranie z Wikimedia Commons: commons.wikimedia.org · kompresja: squoosh.app · Podstawa programowa 351203, INF.03.3(4)9
Ćwiczenie 2 · na kartce · 4 minuty

Ćwiczenie 2: dobierz format

Do każdej sytuacji dopiszcie format pliku (JPG, PNG, SVG, WebP, GIF) i jedno słowo dlaczego:

  1. Zdjęcie z wycieczki klasowej, 30 sztuk w galerii.
  2. Logo szkoły na kolorowym pasku, tło ma być przezroczyste.
  3. Ikona lupy w polu wyszukiwania, ostra na każdym ekranie.
  4. Krótka zapętlona animacja „ładowanie…”.
  5. Zrzut ekranu z instrukcją, tekst na nim musi być czytelny.
kryteria: MDN: Image file type and format guide
Pytania kontrolne

Trzy pytania na koniec

  1. Kto korzysta z alt i kiedy zostawiacie go pustego?
  2. Co się dzieje z tekstem na stronie, gdy obraz nie ma width i height?
  3. 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 lekcjiW produkcjiStatus
img z alt, width i heightZawsze. Brak wymiarów to skoki układu, brak alt wychodzi w każdym audycie dostępności.nadal w użyciu
JPG i PNGZastę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 razuloading="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 animacjiCiężki; MDN radzi do animacji WebP, AVIF albo APNG. GIF zostaje do prostych obrazków.zastępowane
zdjęcie wrzucone jak jestKaż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