STATUS IS UPWIKI OPTYMALIZACJI WITRYN
18Przyspieszaj
Wydajność i dostarczanie / Przyspieszaj

Responsywne obrazy z użyciem srcset i sizes

Pomóż przeglądarce wybrać obraz dopasowany do rzeczywistego miejsca w układzie zamiast wysyłać jednego przerośniętego oryginału do wszystkich odwiedzających.

Responsywne obrazy z użyciem srcset i sizes — PRZEWODNIK WIZUALNY
CZYTAJ
8 min
ŹRÓDŁA
6
ZWERYFIKUJ PONOWNIE
2027-03-27
przejrzano
Recenzent ds. wydajności sieci i dostępności
KRÓTKA ODPOWIEDŹ

Zacznij od decyzji.

Użyj srcset i sizes, gdy ten sam obraz pojawia się w różnych szerokościach renderowanych w responsywnym układzie. srcset wymienia kandydatów obrazów i ich rzeczywiste szerokości; sizes opisuje oczekiwaną szerokość miejsca (slotu) obrazu dla każdego warunku układu. Przeglądarka użyje tego oszacowania rozmiaru źródła razem z gęstością wyświetlacza, powiększeniem i innymi warunkami, by wybrać odpowiedni plik. Mała karta na telefonie może dzięki temu uniknąć pobrania desktopowego oryginału, a duży lub wyświetlacz o wyższej gęstości może wybrać ostrzejszy kandydat, jeśli jest dostępny.

Zacznij od CSS komponentu, a nie od ogólnej listy urządzeń. Zmierz slot przy każdym punkcie przerwania, wygeneruj prawdziwe kandydatury i spraw, aby sizes odzwierciedlało ten slot. Używaj deskryptorów x tylko dla stałego slotu CSS. Użyj picture, gdy mniejszy ekran potrzebuje innego kadrowania, a nie tylko mniejszego pliku. Zweryfikuj rzeczywiste żądanie przez przeładowanie z wyczyszczoną pamięcią podręczną. Ta proaktywna optymalizacja dostawy zmniejsza niepotrzebny transfer obrazów przed wydaniem, ale nie gwarantuje szybkości, dostępności ani niezawodności hosta obrazów.

PRZEWODNIK WIZUALNY

Zobacz pracę jako system.

Użyj tej mapy, aby połączyć decyzje z artykułu, zanim przejdziesz do poszczególnych taktyk.

SIUPrzyspieszaj
01Wybierz właściwy wzorzec
02Zrozum, jak sizes kieruje wyborem
03Wyprowadzaj kandydatów z rzeczywistego układu
04Użyj picture do art direction (kierowanie artystyczne)
01

Wybierz właściwy wzorzec

Resolution switching (przełączanie rozdzielczości) zachowuje tę samą kompozycję i oferuje kilka szerokości plików. To zwykły wzorzec dla zdjęć produktowych, ilustracji artykułów i kafelków. Używaj deskryptorów szerokości takich jak 480w lub 1200w, gdy renderowana szerokość zmienia się wraz z układem. Liczba to rzeczywista szerokość pliku w pikselach, a nie cel na telefonie ani polecenie CSS.

Density switching (przełączanie gęstości) obsługuje stały slot CSS, dostarczając więcej pikseli źródłowych dla wyświetlaczy o wyższej gęstości. Jego deskryptory to 1x, 1.5x lub 2x i pasuje do logo lub ikony, która ma stale, na przykład, 160 CSS pikseli szerokości. Nie mieszaj deskryptorów szerokości i gęstości w jednym srcset.

Płynny slot

Używaj deskryptorów w (w) z sizes, gdy komponent się powiększa lub kurczy.

Stały slot

Używaj deskryptorów x bez sizes tylko wtedy, gdy renderowany rozmiar CSS jest stabilny.

02

Zrozum, jak sizes kieruje wyborem

Dla deskryptorów szerokości przeglądarka ocenia sizes przed pobraniem obrazu. Każdy wpis łączy opcjonalny warunek media z jednostką długości. Pierwszy pasujący warunek dostarcza source size; ostateczna bezwarunkowa długość jest fallbackiem. sizes to wskazówka wyboru, a nie reguła CSS.

Przeglądarka porównuje to source size z szerokościami kandydatów, aby obliczyć efektywną gęstość, a następnie może uwzględnić gęstość wyświetlacza, powiększenie i warunki sieciowe. Nie jest zobowiązana do wyboru matematycznie najbliższej nazwy pliku. Dostarczaj uczciwe kandydatury i wiarygodne oszacowanie slotu; ostateczny wybór pozostaje decyzją agenta użytkownika.

Kolejność ma znaczenie

Pierwszy pasujący warunek wygrywa, więc napisz listę w takiej kolejności, aby ten pierwszy match był poprawny.

Unikaj ogólnego 100vw

Jedna trzecia karty desktopowej opisana jako szeroka na cały viewport może spowodować wybór niepotrzebnie dużego kandydata.

03

Wyprowadzaj kandydatów z rzeczywistego układu

Sporządź inwentaryzację komponentów, a nie stron. Hero, ilustracja redakcyjna, galeria produktów, miniatura w wynikach wyszukiwania i logo stopki często mają różne szerokości slotów. Dla każdego zanotuj wąską i najwiekszą renderowaną szerokość, proporcję boków, zachowanie kadrowania i widoczność na początkowym ekranie.

Generuj szerokości wokół znaczącego zakresu slotu komponentu, z większą opcją, gdy szczegóły uzasadniają renderowanie o wyższej gęstości. Prawie identyczne pliki dodają złożoności budowy i cache; tylko bardzo mały i bardzo duży plik wymuszają kompromis. Testuj wygenerowane URL-e zamiast zakładać, że transformacje obrazów działają.

Zachowaj ważny src fallback oraz wartości width i height, które pasują do dostarczonego stosunku. Rezerwują one przestrzeń, ale nie zapobiegają responsywnemu CSS-owi zmieniającemu końcowe wymiary.

Prawdziwe deskryptory

Kandydat deklarowany jako 800w musi faktycznie mieć 800 pikseli szerokości.

Kontrakt komponentu

Utrzymuj plan slotu i kandydatów razem ze zmianami szablonu i projektu.

04

Użyj picture do art direction (kierowanie artystyczne)

Art direction zmienia kompozycję, a nie tylko rozmiar pliku. Szerokie zdjęcie krajobrazu może wymagać wątszego, pionowego kadru na wąskim ekranie, aby jego temat pozostał widoczny. Element picture może zaoferować media-specyficzne opcje źródeł, po których następuje jeden fallback img. Przeglądarka rozważa media, type i informacje srcset każdego source; img zawiera tekst alternatywny, wymiary i zachowanie fallbacku.

Przygotuj każde kadrowanie z przeglądem redakcyjnym i dostępowym. Mobilny crop może usunąć szczegół produktu lub osobę opisaną w alternative text. Umieść alt na img i opisz informację lub funkcję, którą obraz przekazuje. Użyj alt="" tylko dla naprawdę dekoracyjnego obrazu; dla obrazu w linku lub przycisku opisz działanie zamiast wyglądu. Nie wprowadzaj picture, gdy kadrowanie nie ulega zmianie: zwykły srcset oparty na szerokości jest prostszy.

Dobre zastosowanie

Zajęty hero na desktopie wymaga odrębnego pionowego kadru na telefon.

Źródła formatu

source w picture może zaoferować wskazówkę type i zachować szeroko użyteczny fallback img.

05

Unikaj kosztownych błędów ładowania i znacznika

Zwykła strata to kopiowanie sizes="100vw" do każdego obrazu. To może pasować do wąskiego obrazka pełnej szerokości, ale nie do ograniczonego kontenera czy karty desktopowej. Przeciwną porażką są przestarzałe values sizes po redesignie. Zmieniaj CSS i sizes razem.

Nie ładuj leniwie (lazy-load) obrazu ważnego dla początkowo widocznej zawartości. Zalecenia sugerują lazy loading dla obrazów poniżej folda i utrzymanie widocznego hero jako eager. fetch priority może podnieść priorytet naprawdę istotnego obrazu, ale szerokie stosowanie wysokiego priorytetu lub preload może zaszkodzić wydajności. Nie polegaj na nazwach plików ani wynikach cache jako na dowodzie.

Regresja przy zimnym cache'u

CMS, proxy lub cache może ukryć błędny deskryptor lub niezamierzone żądanie obrazu.

Tekst na obrazach

Nie polegaj na kadrowaniu art-directed, aby przekazywać istotny tekst strony.

06

Przetestuj żądanie, kadrowanie i naprawę

Testuj reprezentatywne strony przy szerokościach zmian układu, w tym tuż powyżej i poniżej punktu przerwania gridu. Uwzględnij ustawienie o wysokiej gęstości, szeroki desktop oraz stany zmieniające slot. Potwierdź renderowane wymiary, kadrowanie, tekst alternatywny i ostrość wizualną.

W Chrome DevTools otwórz Network, przeładuj z wyłączonym cache lub użyj Empty Cache And Hard Reload, filtruj żądania obrazów i sprawdź URL, rozmiar transferu, nagłówki, initiator i timingi. Throttle (ogranicz) połączenie, aby ujawnić opóźnione lub marnotrawne zadania. Zarejestruj viewport, device scale factor, slot, kandydata, przesłane bajty i oczekiwany rezultat.

Gdy szablon, breakpoint, CDN lub pipeline zasobów ulegnie zmianie, potraktuj to jako bramkę wydania. Naprawiaj wąsko: popraw sizes, skoryguj deskryptor, wygeneruj ponownie crop, przywróć fallback albo usuń niepotrzebny preload. Ponownie przetestuj przy przeładowaniu z wyczyszczoną pamięcią podręczną.

Obserwuj, zamiast wnioskować

Panel Network rejestruje rzeczywistego kandydata, który został zażądany.

Ograniczenie zakresu

To weryfikuje zachowanie dostawy obrazu, a nie możliwości origin, dostępność CDN czy ogólną dostępność usług.

07

Stosuj to jako kontrolę odporności SIU

Responsywne obrazy zmniejszają niepotrzebny transfer, ale nie gwarantują pomyślnego żądania. Błędy origin, niedostępne transformacje, hosty trzecie i awarie CDN wymagają odrębnego planowania ciągłości i odzyskiwania.

Dla SIU używaj rekordów testowych, aby wcześnie wykrywać regresje dostawy, zidentyfikować odpowiedzialny szablon lub regułę transformacji i wprowadzić najmniejszą bezpieczną korektę przed wydaniem. Sparuj to z preflightem dostępności i planowaniem rollbacku.

Odpowiedzialność

Przypisz właściciela komponentu i pipeline'u obrazów dla każdej nieudanego sprawdzenia wyboru.

DZIAŁANIE / WERYFIKACJA

Twój praktyczny przewodnik z zadaniami.

  1. 01

    Skategoryzuj każdy komponent

    Oznacz go jako płynny, stały-slot, art-directed, dekoracyjny, funkcjonalny lub krytyczna widoczna zawartość.

    SPRAWDŹ: Inwentaryzacja odnotowuje zakres slotu, regułę kadrowania i właściciela.
  2. 02

    Zmierz sloty

    Sprawdź grid produkcyjny w stanach wąskim, średnim i szerokim.

    SPRAWDŹ: Zarejestrowane szerokości boxów CSS uwzględniają ograniczenia, odstępy i paski boczne.
  3. 03

    Wybierz deskryptory

    Używaj w z sizes dla płynnych slotów lub x dla stałych slotów; nie mieszaj ich.

    SPRAWDŹ: Każde srcset używa jednego typu deskryptora.
  4. 04

    Napisz sizes z CSS

    Użyj warunków first-match i bezwarunkowego fallbacku opisującego slot.

    SPRAWDŹ: Wartość dopasowana jest wiarygodna przy każdym testowanym viewportcie.
  5. 05

    Zwaliduj zasoby

    Sprawdź, że każdy kandydat istnieje i odpowiada deklarowanej szerokości wewnętrznej.

    SPRAWDŹ: Bezpośrednie żądania zwracają zamierzone pliki i działający fallback.
  6. 06

    Zarezerwuj przestrzeń

    Podaj pasujące wartości width i height oraz responsywny CSS zachowujący proporcje.

    SPRAWDŹ: Pojawienie się obrazu nie powoduje niepotrzebnego przesunięcia otaczającej treści.
  7. 07

    Przejrzyj art direction

    Sprawdź każde media-specyficzne kadrowanie i tekst alternatywny img.

    SPRAWDŹ: Ważne obiekty pozostają widoczne, a opis alternatywny pozostaje poprawny.
  8. 08

    Ustal priorytet świadomie

    Lazy-load obrazów poniżej folda; unikaj szerokiego stosowania wysokiego priorytetu i preload.

    SPRAWDŹ: Prawdziwy widoczny hero jest żądany szybko bez niepotrzebnej konkurencji.
  9. 09

    Zarejestruj dowody dla zimnego cache'u

    Użyj filtrowania obrazów w DevTools, przeładowań z wyłączonym cache i reprezentatywnych viewportów.

    SPRAWDŹ: Dowody wydania rejestrują wybranego kandydata, slot, rozmiar transferu i kadrowanie.
  10. 10

    Zaplanuj remediację

    Przypisz ukierunkowaną poprawkę lub rollback dla zmian szablonu i pipeline'u obrazów.

    SPRAWDŹ: Każda awaria ma właściciela i udane powtórne testy przy zimnym cache'u po naprawie.
TEMATY DO DYSKUSJI

Porównuj kompromisy, nie dane prywatne.

Użyj tych pytań z zespołem lub społecznością właścicieli witryn. Dziel się metodami i lekcjami, ale nigdy nie wklejaj poświadczeń, danych klientów ani niepublicznych informacji infrastruktury.

  1. 01

    Który komponent na Twojej stronie ma największą różnicę między pobranymi pikselami a zwykłym renderowanym slotem, i jak mógłbyś to bezpiecznie zmierzyć?

  2. 02

    Jak wasi projektanci, właściciele CMS i zespół frontend decydują, kiedy mobilny crop to kierowanie artystyczne (art direction), a kiedy tylko zmiana rozmiaru?

  3. 03

    Jakie dowody uczyniłyby regresję responsywnych obrazów łatwą do zatwierdzenia lub wycofania podczas przeglądu wydania bez udostępniania danych klientów?

POPULARNE / AUTORYTATYWNE ZASOBY

Otwórz materiały źródłowe.

WHATWGImages in the HTML Standard ↗

Podstawowe reguły dot. deskryptorów, wyboru source-size, fallbacków i zachowania przeglądarki.

Przejrzano 2026-09-27
MDN Web DocsUsing responsive images in HTML ↗

Praktyczny przewodnik po srcset, sizes, przełączaniu gęstości, art direction i testowaniu.

Przejrzano 2026-09-27
web.devResponsive images ↗

Wskazówki Google dotyczące wymiarów, ładowania, deskryptorów i ograniczeń układu.

Przejrzano 2026-09-27
MDN Web Docspicture HTML picture element ↗

Referencja dla wyboru media i type, art direction, sizes i fallbacków.

Przejrzano 2026-09-27
Chrome for DevelopersInspect network activity ↗

Instrukcje dotyczące żądań, transferów, throttlingu, filtrowania i przeładowania z wyczyszczonym cache.

Przejrzano 2026-09-27
W3C Web Accessibility InitiativeImages Tutorial ↗

Wytyczne dotyczące obrazów znaczących, dekoracyjnych, funkcjonalnych i tekstowych.

Przejrzano 2026-09-27

Polityka źródeł. Twierdzenia dotyczące składni responsywnych obrazów i wyboru przez przeglądarkę opierają się na oficjalnych standardach i dokumentacji wymienionych poniżej. Zanim wprowadzisz zmiany, zweryfikuj markup, szerokości kandydatów i renderowany układ na rzeczywistych szablonach witryny.

SZYBKIE WYJAŚNIENIA

Często zadawane pytania.

Czy potrzebuję sizes za każdym razem, gdy używam srcset?

Użyj sizes z deskryptorami szerokości, ponieważ przeglądarka potrzebuje oszacowania source-size dla płynnego slotu. Srcset dla stałego rozmiaru z deskryptorami gęstości x nie wymaga sizes. Nigdy nie mieszaj obu typów deskryptorów w jednym srcset.

Czy sizes zmienia CSS-ową szerokość obrazu?

Nie. sizes to wskazówka doboru przed ładowaniem. CSS i układ komponentu określają renderowane pudełko, dlatego sizes trzeba utrzymywać przy każdej zmianie układu.

Czy każdy responsywny obraz powinien używać picture?

Nie. Używaj srcset opartego na szerokości, gdy kompozycja nie ulega zmianie przy różnych rozmiarach. Użyj picture, gdy warunek media wymaga innego kadrowania lub źródła specyficznego dla formatu, zachowując jednocześnie użyteczny fallback img.

Status Is UP Editorial Team · Redakcja Uptime Enablement

Sprawdził(a): Recenzent ds. wydajności sieci i dostępności. Opublikowano: 2026-09-27; zaktualizowano: 2026-09-30.