2016-07-06 2 views
0

Я хочу создать правило для браузера сафари только с sass. По this ответ мне нуженsass интерполяция в селекторе не работает

@media экран и (мин-цвето-индекс: 0) и (-webkit-мин-устройства пиксел соотношение: 0)

Обратите внимание, что нет никакого пространства после 2-го и, в противном случае он запускает хром. Так где-то в my-file.sass я делаю следующее:

$safari-only: '(min-color-index:0) and(-webkit-min-device-pixel-ratio:0)' 

@media screen and #{$safari-only} 
    body 
     background-image: linear-gradient(green 0%, red 100%) !important 

Но эта вещь компилируется в

@media screen and (min-color-index: 0) and (-webkit-min-device-pixel-ratio: 0) { 
    body { 
    background-image: linear-gradient(green 0%, red 100%) !important; 
    } 
} 

Примечание есть IS пространство после 2-го и. Вот demo

Другая вещь, которую я хотел бы знать, если я могу создать @safari-only подмешать. Например:

@mixing safari-only 
    $safari-only: '(min-color-index:0) and(-webkit-min-device-pixel-ratio:0)' 
    @media screen and #{$safari-only} 

@include safari-only 
    body 
    background-image: linear-gradient(green 0%, red 100%) !important 

Это приводит к ошибке, что примесь не имеет тела

Так что я хотел бы знать:

  1. Как сказать дерзость не форматирования кода вместо меня?
  2. Как я могу создать первый селектор уровня в качестве Mixin

P.S. Я использую Sass 3.4.21 (Selective Steve)

С наилучшими пожеланиями,

ответ

-1

Вы можете заставить форматирование SASS с #{}

$safari-only: #{'(min-color-index:0) and(-webkit-min-device-pixel-ratio:0)'} 
+0

Может у пожалуйста изменить свой ответ по моим потребностям? Мне нужно создать литерал для селектора, а не для значения. «background» - это просто яркий пример, чтобы увидеть разницу между хром и сафари. И, как я писал, я использовал '# {$ safari-only}', это не сработало! Если я заменю переменную своим значением, она ничего не меняет :( – deathangel908

+0

Как я писал в вопросе, это не сработает! Оно соответствует «...» и (-web ... ' space' after ** и **? Это нарушает все функциональные возможности этого правила для браузера. Думаю, вы просто не прочитали мой вопрос :) – deathangel908

+0

Не могли бы вы проверить демоверсию, которую я добавил? http://www.sassmeister.com/gist/3ddf25510ea9b0e5d9e55f6ac9929ea7 – deathangel908

Смежные вопросы