@maestro07

Как прописать container query в styled-component?

Как прописать container query в styled-component?
это запись не работает. Меняю размер окна браузера через responsive
const Container = styled.div`
    container-type: inline-size;
    max-width: 370px;
    
`

const Header = styled.div`
    ["@container (max-width: 370px)"]: {
        height: 180px;
    },
    ["@container (max-width: 314px)"]: {
        height: 150px;
    }
    ["@container (max-width: 270px)"]: {
        height: 180px;
    }
`

<Container>
   <Header />
</Container>
  • Вопрос задан
  • 156 просмотров
Пригласить эксперта
Ответы на вопрос 1
OrlovEvgenii
@OrlovEvgenii
golang developer / DevOps
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 с помощью медиа-запросов для изменения его высоты в зависимости от ширины экрана.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
06 мая 2024, в 12:06
1200 руб./в час
06 мая 2024, в 11:52
1000 руб./за проект
06 мая 2024, в 10:17
15000 руб./за проект