ошибка scss «ожидается медиа-запрос» - использовать несколько медиа-запросов - стандартизировать размеры устройств - PullRequest
0 голосов
/ 02 ноября 2018

Я пытаюсь стандартизировать размеры устройств на моем scss, основываясь на this :

/** Extra small devices (phones, 600px and down) */
$extra-small-evices: "screen and (max-width: 600px)",
/** Small devices (portrait tablets and large phones, 601px to 768px) */
$small-devices = 'screen and (min-width: 601px) and (max-width: 768px)',
/** Medium devices (landscape tablets, 769px to 991px) */
$medium-devices = 'screen and (min-width: 769px) and (max-width: 991px)',
/** Large devices (laptops/desktops, 992px to 1200px) */
$large-devices = 'screen and (min-width: 992px) and (max-width: 1200px)',
/** Extra large devices (large laptops and desktops, 1201px and up) */
$extra-large-devices = 'screen and (min-width: 1201px)'

После этого меньше говорите, что я хочу создать медиа-запрос, целью которого являются маленькие устройства и средние устройства:

@media $small-devices,
@media $medium-devices{
   ....
}

Но я получаю следующую ошибку в строке @media $small-devices,:

[scss] медиа-запрос ожидается

Среда: Visual studio code, nodejs, angular 6, gulp,

Кто-нибудь знает, как это не решить?

1 Ответ

0 голосов
/ 02 ноября 2018

Вы должны сказать SASS, что ваша строка должна быть без кавычек и обрабатываться как обычный CSS:

@media #{unquote($small-devices)}{
    // Your output here
}

Вы все еще можете использовать несколько, как это:

@media #{unquote($small-devices)},
       #{unquote($extra-small-devices)}{
    // Your output here
}

Но, возможно, для стиля и элегантности вы можете подумать о создании миксина, который просто берет все строки, а затем построить медиа-запрос следующим образом:

@mixin media( $selectors... ){

    $selector: '';

    @each $s in $selectors {

        @if $selector == '' { $selector: $s; }
        @else { $selector: $selector + ', ' + $s; }

    }

    @media #{unquote($selector)}{

        @content;

    }

}

А затем используйте его так:

@include media( $extra-small-devices, $extra-large-devices ){

    ...

}

И вывод будет:

@media screen and (max-width: 600px), screen and (min-width: 1201px) {

    ...

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...