Как подставить в @media screen переменную из css?

Ссылка скопирована
1 ответ

Всем привет, возникла проблема с переменными css, имеются вот такие вот стили css

.container {   max-width: 1400px;   margin: 0 auto; }  @media screen and (max-width: var(--breakpoint-xxl)) {   .container {     max-width: var(--breakpoint-xl);   } }

.container { max-width: 1400px; margin: 0 auto; } @media screen and (max-width: var(--breakpoint-xxl)) { .container { max-width: var(--breakpoint-xl); } }

Так же имеются вот такие вот с переменые

:root {   --breakpoint-sm: 576;   --breakpoint-md: 768;   --breakpoint-lg: 992;   --breakpoint-xl: 1200;   --breakpoint-xxl: 1400; }

:root { --breakpoint-sm: 576; --breakpoint-md: 768; --breakpoint-lg: 992; --breakpoint-xl: 1200; --breakpoint-xxl: 1400; }

И проблема в том, что в этом случае это не срабатывает. Я прочитал, что так сделать не получится, а можно ли как то это обойти. У меня устанволен препроцессор scss, но я не хочу в каждый файл делать импорт breakpoints.scss, можно ли как один раз глобально экспортировать и больше не делать импорт?

Дополнительно:

Насколько я помню, в условии медиазапроса css-переменные использовать нельзя.

Можно использовать препроцессорные переменные. В качестве примера использования можно посмотреть бутстрап.

Ответы:

Никак.

  • Как подставить в @media screen переменную из css?

Ждём спецификацию Media Queries Level 5.

В целом, если хотите включить возможности работы спецификации не имплементированной в браузеры, то можно подключить postcss-плагин PostCSS Custom Media, тогда можно будет использовать кастомные свойства вот так:

@custom-media --small-viewport (min-width: 768px);  @media (--small-viewport) { 	/* стили для планшета */ }  /*  в css получится вот так*/  @media (min-width: 768px) { 	/* styles for small viewport */ }

@custom-media --small-viewport (min-width: 768px); @media (--small-viewport) { /* стили для планшета */ } /* в css получится вот так*/ @media (min-width: 768px) { /* styles for small viewport */ }

Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Ирина WP Ответ

Для того чтобы подставить переменную из CSS в @media screen, вы можете использовать CSS переменные (Custom Properties). Вот пример того, как это можно сделать:

1. Сначала определите переменную в вашем CSS файле:

```html

:root {
--main-bg-color: blue;
}

@media screen {
body {
background-color: var(--main-bg-color);
}
}

```

2. Теперь вы можете использовать эту переменную в вашем CSS коде:

```html

@media screen {
body {
background-color: var(--main-bg-color);
}
}

```

Таким образом, вы можете легко изменять значение переменной --main-bg-color в одном месте (в :root) и оно автоматически будет применяться в @media screen.

Надеюсь, это поможет вам решить вашу проблему! Если у вас возникнут дополнительные вопросы, не стесняйтесь задавать.

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно