2021-05-25 16:00:32
Container Queries - стислий вступ до темиЯкщо ви ще не чули про Container Queries або не мали часу розібратися, то цей короткий допис повідомить вам необхідний мінімум.Container Queries - очікуваний багатьма розробникам додаток до CSS. Сьогодні специфікація має статус пропозиції та реалізована у Chrome Canary за флагом. Тобто, це експериментальна можливість. Щоб її аквтивувати, слід зайти у “хромі” на урл
chrome://flags та явно вибрати Enable CSS Container Queries у списку доступних експериментів.
Як ви можете зрозуміти, повноцінної підтримки чекати ще довго, а реалізація може суттєво змінитися. Тим не менш це важливе доповнення можливостей CSS, тож чому б не подивитися, куди рухається CSS як технологія.
Наведемо слова Уни Краветс:
Контейнерні запити (Container queries) принесуть найбільші зміни у світ веб-стилів з часів CSS3: вони змінять наше розуміння адаптивнивного дизайну.Тож, що чекає на нас у майбутньому?
Нам часто потрібно задати стилі компонента залежно від розмірів батьківського елемента. Скажімо, той самий елемент меню може виглядати по-різному залежно від розмірів самого меню. До недавнього часу при визначенні стилів для такого елемента ми могли відштовхуватися лише від розміру видимого простору (viewport). Цього достатньо, коли нам потрібні різні стилі для десктоп-меню та мобільного меню, проте що як ми хочему по-різному стилізувати елемент меню залежно від того, якого розміру саме меню?
Пропозиція
Container Queries додає новий синтаксис для стандарту CSS, що дозволяє звертатися до розмірів контейнера та залежно від цих розмірів задавати стилі дочірніх компонентів. Дуже схоже на media query, тільки ми відштовхуємося не від розмірів видимого простору, а від розмірів певного елемента-контейнера.
Це означає, що той самий елемент може виглядати геть по різному залежно від того, в якому контейнері він розміщений. Скажімо, блочна цитата, яка може знаходитися всередині різних контейнерів на сторінці.
Батьківский елемент створює контекст контейнера за допомогою правила container та значень, які визначають, що саме контейнеризує цей елемент. Вкладений елемент робить запит до контейнера за допомогою синтаксису, схожого на синтаксис media query.
Основний випадок застосування таких запитів - складні розкладки сторінок, де окремі елементи можуть містити цілі лейаути всередині.
Зокрема Container Queries відкривають широкі можливості для веб-компонентів, які мають ізольовані стилі, проте досі не мали змоги розраховувати стилі вкладених компонентів залежно від кореневого компонента. Макс Бьок дослідив нові можливості стилізації еб-компонентів за допомогою Container Queries у дописі Container Queries in Web Components
Де можна почитати докладніше?
Допис авторки пропозиції Міріам Сузанн
Текст пропозиції, якщо хочете самотужки розібратися у технічних деталях (до речі, ці деталі викладені цілком доступно)
Допис Уни Краветс
Допис Ахмада Шадіда
409 viewsAnastasiya Mashoshyna, 13:00