tgoop.com/webdevlair/3888
Create:
Last Update:
Last Update:
Адаптивность через @media — привычная вещь, но неудобная: когда один компонент используется в разных местах, его поведение зависит от размера окна браузера, а не от его контейнера. В итоге — хаки и дублирование стилей.
.card .title {
font-size: 1rem;
}
@media (min-width: 768px) {
.card .title {
font-size: 2rem;
}
}.card {
container-type: inline-size;
container-name: card;
}
.title {
font-size: 1rem;
}
@container card (min-width: 400px) {
.title {
font-size: 2rem;
}
}Проблема: Если компонент .card вставить в узкий сайдбар на широком экране, стили могут «сломаться», так как адаптивность зависит от окна браузера, а не от контейнера. Теперь .title реагирует на размер контейнера, а не на размер вьюпорта. Это решение убирает все костыли и делает компоненты более гибкими.
Теперь можно создавать по-настоящему адаптивные компоненты без костылей. Поддержка в Chrome, Edge и Safari уже есть, так что пора пробовать в продакшене!

