CSS container-type — контейнерні запити замість media query


CSS властивість container-type робить елемент контейнером запитів — після цього його нащадки можуть реагувати на його розмір через правило @container.

автор: NagarD

Загальний опис

Media query знає лише ширину екрана. Але картка може стояти і в широкій колонці, і у вузькому сайдбарі — а вигляд їй потрібен різний.

Контейнерні запити розв'язують саме це: компонент дивиться на розмір свого контейнера, а не вікна. Той самий код — і в сайдбарі картка вертикальна, а в основній колонці горизонтальна.

Значення inline-size (реагувати на ширину) покриває майже всі потреби.

автор: NagarD

Порада

Це те, чого чекали від CSS роками: справді перевикористовувані компоненти, які підлаштовуються під місце, а не під екран.

автор: NagarD

Синтаксис

container-type: normal | size | inline-size;

Властивість container-type може отримувати 3 значень:

normal

Не контейнер розмірних запитів.

автор: NagarD

inline-size

Запити до ширини (inline-осі) контейнера.

автор: NagarD

size

Запити до обох вимірів.

автор: NagarD

Значення без задання: normal
Наслідує: Ні
Анімується: Ні

Переглядачі

Підтримка: стаціонарні переглядачі
Переглядач Google Chrome Mozilla Firefox Apple Safari Opera Microsoft EDGE Microsoft Internet Explorer
container-type 105+ 110+ 16+ 91+ 105+ -
Підтримка: мобільні переглядачі
Переглядач Mobile Google Android Mobile Google Chrome Mobile Mozilla Firefox Mobile Apple Safari
container-type 105+ yes yes 16+

Приклади

+ запропонувати свій приклад у пісочниці

Картка сама вирішує, як їй виглядати — за шириною контейнера.

HTML

<div class="sidebar">
    <article class="card">
        <img src="/img/logo.svg" alt="">
        <p>У вузькому контейнері — вертикально</p>
    </article>
</div>

CSS

.sidebar {
    container-type: inline-size;
    width: 250px;
}

.card {
    display: grid;
}

/* коли контейнер ширший за 400px — стає горизонтальною */
@container (min-width: 400px) {
    .card {
        grid-template-columns: 100px 1fr;
        gap: 1rem;
    }
}
автор: NagarD

Коментарі

Коментарів ще немає — будьте першим!

Відповідь для

Увійдіть — коментар з'явиться одразу, без капчі й очікування перевірки.

Пропозиція правки

Ваша версія — : після перевірки замінить чинну. Нова порада чи нотатка — з'явиться на сторінці після перевірки.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія секції «»: після перевірки замінить чинну.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія опису «»: після перевірки замінить чинну.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Зворотний зв'язок
Вхід