Gumowy układ to typ kodowania, w którym szerokość elementów jest określana w procentach lub innych względnych jednostkach, a nie w stałych pikselach. Taki układ skaluje się proporcjonalnie do rozmiaru okna przeglądarki, zachowując strukturę strony na każdym ekranie. Według MDN Web Docs (2026), elastyczne kodowanie stało się podstawą nowoczesnego responsywnego designu, choć dziś rzadko jest używane w czystej postaci.
Najważniejsze
Gumowy układ (liquid layout, fluid layout) — podejście do kodowania, w którym rozmiary elementów są określane w jednostkach względnych, a nie w stałych pikselach. Pozwala to stronie skalować się wraz z oknem przeglądarki bez poziomego przewijania.
Koncepcja elastycznego kodowania powstała jeszcze w epoce monitorów stacjonarnych o różnej rozdzielczości. W latach 2000. strony o stałej szerokości 960 pikseli słabo wyglądały na 15-calowych i 30-calowych monitorach. Gumowy układ rozwiązał ten problem.
Według Web Almanac (2024), 78% nowoczesnych stron używa elementów elastycznego kodowania poprzez jednostki względne. Czysto gumowe układy występują rzadziej — głównie w dashboardach i panelach zarządzania.
Elastyczne kodowanie stało się popularne po publikacji artykułu Johna Allsoppa «A Dao of Web Design» w 2000 roku, w którym wezwał do porzucenia stałych pikseli na rzecz jednostek względnych. Ten manifest położył filozoficzne podstawy całego responsywnego designu.
Podstawowe jednostki względne w CSS dzielą się na dwie grupy: względem elementu rodzica (procenty) i względem viewportu (vw, vh, vmin, vmax). Każda grupa rozwiązuje swoje zadania w elastycznym kodowaniu.
/* Percent — width relative to parent */
.sidebar {
width: 30%;
}
.content {
width: 70%;
}
/* vw/vh — viewport-based units */
.hero-section {
width: 100vw;
height: 80vh;
}
.fullscreen-modal {
width: 90vmin;
}
Procenty są obliczane względem szerokości kontenera rodzica. Zagnieżdżone procenty mogą tworzyć kaskadowe obliczenia, które czasami dają nieoczekiwane rezultaty. Jednostki vw/vh są powiązane z viewportem i ignorują kontenery rodzica — jest to wygodne dla pełnoekranowych sekcji.
W elastycznym kodowaniu ważne jest nie tylko określanie szerokości bloków w jednostkach względnych, ale także rozmiaru czcionki. Jednostka rem (root em) wiąże rozmiar tekstu z korzeniem elementu HTML. Zmieniając font-size w html, można skalować cały tekst na stronie.
/* Global text scaling via rem */
html {
font-size: 62.5%; /* 1rem = 10px */
}
.heading {
font-size: 2.4rem; /* = 24px */
}
.body-text {
font-size: 1.6rem; /* = 16px */
}
Główna różnica między gumowym a responsywnym układem to charakter zmiany szerokości. Gumowy układ zmienia się płynnie przy każdej zmianie okna, a responsywny — dyskretnie poprzez media queries.
Gumowy układ to ciągłe skalowanie, responsywny — przełączanie między stałymi układami. Każde podejście ma mocne i słabe strony.
| Charakterystyka | Gumowy układ | Responsywny układ |
|---|---|---|
| Jednostki | %, vw, rem | px, stałe szerokości |
| Skalowanie | Płynne, ciągłe | Skokowe, przez breakpointy |
| Obsługa ekranów | Dowolna szerokość | Tylko określone rozdzielczości |
| Złożoność | Niska | Wysoka (potrzebne media queries) |
| Kontrola | Mniejsza kontrola | Pełna kontrola na breakpointach |
W praktyce większość nowoczesnych stron używa podejścia hybrydowego: elastyczna siatka z jednostkami względnymi + media queries dla krytycznych breakpointów. Czysto elastyczne kodowanie bez media queries może wyglądać nieestetycznie na bardzo szerokich lub bardzo wąskich ekranach.
Podstawowa implementacja gumowego układu obejmuje trzy komponenty: względne jednostki szerokości, maksymalne/minimalne ograniczenia oraz flexbox lub grid do dystrybucji przestrzeni.
/* Fluid grid with Flexbox */
.container {
display: flex;
flex-wrap: wrap;
}
.card {
flex: 1 1 30%;
min-width: 250px;
}
/* Fluid grid with CSS Grid */
.grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
}
Podejście Flexbox z flex: 1 1 30% tworzy karty, które zajmują około 30% szerokości kontenera, ale mogą się zwężać do 250px. Gdy kart jest dużo, przenoszą się do następnego wiersza. Podejście Grid z auto-fit i minmax automatycznie tworzy kolumny, które mieszczą się w kontenerze.
Kluczowy problem czysto elastycznego kodowania — na bardzo szerokich ekranach wiersz tekstu rozciąga się do 2000+ pikseli, co uniemożliwia czytanie. Do rozwiązania używa się właściwości CSS min-width, max-width.
/* Container limits for readability */
.content-wrapper {
width: 90%;
max-width: 1200px;
min-width: 320px;
margin: 0 auto;
}
max-width: 1200px zapobiega rozciąganiu treści na bardzo szerokich monitorach. min-width: 320px gwarantuje minimalną szerokość kontenera na małych ekranach. Kombinacja width: 90% + max-width tworzy elastyczny kontener z limitem — najpopularniejszy wzorzec w nowoczesnym projektowaniu stron.
Według HTTP Archive (2025), 92% stron w top-1000 używa max-width dla bloków treści. Standardowa wartość to 1140–1200 pikseli dla układów desktopowych.
Nowoczesne projektowanie stron rzadko używa czysto gumowego lub czysto responsywnego podejścia. Metoda hybrydowa łączy zalety obu: elastyczna siatka na jednostkach względnych + media queries dla globalnych zmian struktury.
/* Hybrid: fluid base + media query */
.layout {
display: grid;
grid-template-columns: 1fr 3fr;
}
@media (max-width: 768px) {
.layout {
grid-template-columns: 1fr;
}
}
Na desktopie układ używa elastycznych kolumn 1fr i 3fr — proporcja zachowuje się przy dowolnej szerokości okna. Na mobile media query przełącza na schemat jednokolumnowy, gdzie kolumny są ułożone pionowo.
Zaleta podejścia hybrydowego — developer pisze mniej media queries, ponieważ elastyczna siatka automatycznie dostosowuje się do pośrednich rozmiarów. Media queries są potrzebne tylko dla krytycznych zmian struktury, a nie dla każdego kroku szerokości ekranu.
Często zadawane pytania
Gumowy układ używa jednostek względnych i płynnie skaluje się przy każdej zmianie okna. Responsywny układ przełącza się między stałymi szablonami poprzez media queries. Nowoczesne strony zwykle łączą oba podejścia.
Dla kontenerów — procenty (%) i fr (flex/grid). Dla czcionek — rem (względem korzenia). Dla pełnoekranowych sekcji — vw/vh. Kombinacja tych jednostek daje maksymalną elastyczność.
Na bardzo szerokich ekranach wiersze tekstu stają się zbyt długie do czytania. Na bardzo wąskich ekranach elementy mogą się ściskać do nieczytelnego rozmiaru. Rozwiązanie — użycie max-width i min-width do ograniczenia skalowania.
Google zaleca responsywny design (responsive web design) z media queries, ale nie zabrania elastycznego kodowania. Z punktu widzenia SEO ważniejsze jest, aby strona poprawnie wyświetlała się na urządzeniach mobilnych, a nie konkretny typ kodowania.
Tak, gumowy układ istniał na długo przed pojawieniem się CSS Grid. Można go zrealizować na float, inline-block, flexbox lub kodowaniu tabelarycznym. Flexbox i Grid to nowoczesne i najwygodniejsze narzędzia do tego zadania.
Podsumowanie
Opracujemy aplikację mobilną pod klucz
IT Sectr tworzy aplikacje na iOS i Androida dla startupów i firm od 2017 roku. Doradzimy Ci i zaproponujemy najlepsze rozwiązanie.
Przeczytaj również