Гуменият ляут е тип кодиране, при който ширината на елементите се задава в проценти или други относителни единици, а не в фиксирани пиксели. Такова ляут се мащабира пропорционално на размера на прозореца на браузъра, като запазва структурата на страницата на всякакъв екран. Според MDN Web Docs (2026), еластичното кодиране стана основата на съвременния респонзивен дизайн, въпреки че днес редко се използва в чист вид.
Основни моменти
Гумен ляут (liquid layout, fluid layout) — подход за кодиране, при който размерите на елементите се задават в относителни единици, а не в фиксирани пиксели. Това позволява на страницата да се мащабира заедно с прозореца на браузъра без хоризонтално превъртане.
Концепцията за еластично кодиране възниква още в епохата на настолните монитори с различна резолюция. През 2000-те години сайтовете с фиксирана ширина от 960 пиксела изглеждаха лошо на 15-инчови и 30-инчови монитори. Гуменият ляут реши този проблем.
Според Web Almanac (2024), 78% от съвременните сайтове използват елементи на еластично кодиране чрез относителни единици. Чисто гумени ляутове се срещат по-редко — основно в таблоа за управление и административни панели.
Еластичното кодиране става популярно след публикуването на статията на Джон Олсап «A Dao of Web Design» през 2000 г., в която той призовава да се откажем от фиксираните пиксели в полза на относителните единици. Този манифест поставя философската основа за цялото респонзивно дизайниране.
Основните относителни единици в CSS се разделят на две групи: спрямо родителския елемент (проценти) и спрямо viewport-a (vw, vh, vmin, vmax). Всяка група решава своите задачи в еластичното кодиране.
/* 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;
}
Процентите се изчисляват спрямо ширината на родителския контейнер. Вложените проценти могат да създадат каскадни изчисления, които понякога дават неочаквани резултати. Единиците vw/vh са свързани с viewport и игнорират родителските контейнери — това е удобно за целоекранни секции.
При еластичното кодиране е важно не само да задаваме ширината на блоковете в относителни единици, но и размера на шрифта. Единицата rem (root em) свързва размера на текста с HTML кореновия елемент. Чрез промяна на font-size в html може да се мащабира цялият текст на страницата.
/* 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 */
}
Основната разлика между гумения и адаптивен ляут е характерът на промяна на ширината. Гуменият ляут се променя непрекъснато при всяка промяна на прозореца, а адаптивният — дискретно чрез media queries.
Гумен ляут — непрекъснато мащабиране, адаптивен — преключване между фиксирани ляутове. Всякакъв подход има силни и слаби страни.
| Характеристика | Гумен ляут | Адаптивен ляут |
|---|---|---|
| Единици | %, vw, rem | px, фиксирани ширини |
| Мащабиране | Гладко, непрекъснато | Скокообразно, чрез брейкпоинти |
| Подкрепа на екрани | Всякаква ширина | Само определени резолюции |
| Сложност | Ниска | Висока (нужни са media queries) |
| Контрол | По-малко контрол | Пълен контрол на брейкпоинтите |
На практика повечето съвременни сайтове използват хибриден подход: еластична мрежа с относителни единици + media queries за критични брейкпоинти. Чисто еластичното кодиране без media queries може да изглежда невнимателно на много широки или много тесни екрани.
Базовата реализация на гумения ляут включва три компонента: относителни единици за ширина, максимални/минимални ограничения и flexbox или grid за разпределение на пространството.
/* 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));
}
Flexbox подходът с flex: 1 1 30% създава карти които заемат приблизително 30% от ширината на контейнера, но могат да се стеснят до 250px. Когато има много карти, те се преместват на следващия ред. Grid подходът с auto-fit и minmax автоматично създава колони, които се побират в контейнера.
Ключовият проблем на чисто еластичното кодиране — на много широки екрани редът на текста се разтяга до 2000+ пиксела, което прави четенето невъзможно. За решаване се използват 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 предотвратява разтягането на съдържанието на ултрашироки монитори. min-width: 320px гарантира минималната ширина на контейнера на малки екрани. Комбинацията width: 90% + max-width създава еластичен контейнер с таван — най-популярният модел в съвременния уеб дизайн.
Според HTTP Archive (2025), 92% от сайтовете в top-1000 използват max-width за блокове съдържание. Стандартната стойност за настолни ляутове е 1140–1200 пиксела.
Съвременният уеб дизайн редко използва чисто гумен или чисто адаптивен подход. Хибридният метод съчетава предимствата и на двата: еластична мрежа на относителни единици + media queries за глобални преструктурирания.
/* Hybrid: fluid base + media query */
.layout {
display: grid;
grid-template-columns: 1fr 3fr;
}
@media (max-width: 768px) {
.layout {
grid-template-columns: 1fr;
}
}
На настолен компютър ляутът използва еластични колони 1fr и 3fr — пропорцията се запазва при всякаква ширина на прозореца. На мобилни устройства media query преключва към едноколонен режим, където колоните са подредени вертикално.
Предимството на хибридния подход — разработчикът пише по-малко media queries, тъй като еластичната мрежа се адаптира автоматично към междинните размери. Media queries са нужни само за критични промени на структурата, а не за всяка стъпка на ширината на екрана.
Често задавани въпроси
Гуменият ляут използва относителни единици и се мащабира гладко при всяка промяна на прозореца. Адаптивният ляут преключва между фиксирани шаблони чрез media queries. Съвременните сайтове обикновено комбинират и двата подхода.
За контейнери — проценти (%) и fr (flex/grid). За шрифтове — rem (спрямо кореновия елемент). За целоекранни секции — vw/vh. Комбинацията на тези единици осигурява максимална гъвкавост.
На много широки екрани редовете от текста стават тъй дълги, че четенето е невъзможно. На много тесни екрани елементите могат да се свият до нечетием размер. Решение — използвайте max-width и min-width за ограничаване на мащабирането.
Google препоръчва респонзивен дизайн (responsive web design) с media queries, но не забранява еластичното кодиране. От SEO гледна точка е по-важно страницата да се показва правилно на мобилни устройства, отколкото конкретният тип кодиране.
Да, гуменият ляут съществува далече преди появата на CSS Grid. Може да се реализира чрез float, inline-block, flexbox или таблично кодиране. Flexbox и Grid са съвременни и най-удобни инструменти за тази задача.
Заключение
Ще разработим мобилно приложение под ключ
IT Sectr създава iOS и Android приложения за стартъпи и бизнеси от 2017 г. Ще ви консултираме и ще предложим най-доброто решение.
Прочетете също