Container Query (CQ) - это техника, которая позволяет определять стили компонента на основе его контекста, включая размеры его родительского контейнера. Однако, CQ в настоящее время не является стандартом CSS и не поддерживается в стандартных браузерах.
Вместо использования CQ, можно использовать принцип Mobile First и создавать медиа-запросы для разных ширин экрана. Вот пример, как это можно сделать в styled-components:
const Container = styled.div`
max-width: 370px;
@media (max-width: 370px) {
/* Стили для контейнера, если ширина <= 370px */
}
@media (max-width: 314px) {
/* Стили для контейнера, если ширина <= 314px */
}
@media (max-width: 270px) {
/* Стили для контейнера, если ширина <= 270px */
}
`;
const Header = styled.div`
height: 180px;
@media (max-width: 370px) {
height: 150px;
}
@media (max-width: 314px) {
height: 120px;
}
@media (max-width: 270px) {
height: 90px;
}
`;
<Container>
<Header />
</Container>
Здесь мы определяем стили для компонента Container с помощью медиа-запросов для разных ширин экрана. Аналогично, мы определяем стили для компонента Header с помощью медиа-запросов для изменения его высоты в зависимости от ширины экрана.