2017-02-08 2 views
0

Я проверял статью и наткнулся на что-то вроде следующего:

$desktop-width: 1024px; 

@mixin desktop { 
    @media(min-width: #{$desktop-width}) { 
    ... 
    } 
} 

И было интересно, почему использование резкой (#)? Разве вы не можете сделать min-width: $desktop-width?

Спасибо заранее и принять ответ/до голосования

ответ

1

#{} несет ответственность за интерполяцию строк, поэтому в приведенном выше примере она не нужна и может быть опущена.

+0

Когда вы будете использовать интерполяцию строк по регулярным переменным $? Я действительно не вижу никакого реального использования этого. –

+0

Например, вы можете использовать его для margin-top :, margin-left :, margin-right: etc. as margin - # {direction}: –

+0

Таким образом вы можете создать mixin, который примет направление в качестве аргумента и применит его на маржу. –

0

#{} используется для интерполяции строк: http://sass-lang.com/documentation/file.SASS_REFERENCE.html#interpolation_

Существует одно исключение, однако: при использовании # {} интерполяции, цитируемый строки не сортируются. Это облегчает использование, например, имена селекторов в mixins. Например.

Так что этот метод используется иногда, чтобы разрешить использование значений sass в селекторах. Например:

$gutter: 10; 

.grid#{$gutter} { 
    background: red; 
} 

Теперь на ваш вопрос. Я действительно не вижу никаких причин, почему бы кто-нибудь использовать интерполяцию строки в этом селекторе:

#{h1, h2, h3, h4, h5} 
{ 
    color: #000; 
} 

Мое предположение, что дерзость переменная будет добавлена ​​позже в этот селектор или селектор будет полностью заменен переменной ,

+0

Что будет? .grid # {$ gutter} 'do? Это '.grid10' правильно? Когда вы будете использовать интерполяцию строк над регулярными переменными '' '? Я действительно не вижу никакого реального использования этого. –

0

Он в сочетании с {} указывает на то, что должно быть interpolated.

i.e заменено значением переменной.

+0

Когда вы используете интерполяцию строк по регулярным переменным $? Я действительно не вижу никакого реального использования этого. –

+1

@JoKo - потому что вы хотите использовать его где-то переменная не разрешена (например, в середине другой строки или в селекторе) – Quentin

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