2014-07-22 67 views
7

我剛剛遇到了在sass循環之外使用散列符號,我不確定它用於什麼或者是什麼原因。散列(#)符號在SASS的外部循環中做了什麼?

請問這兩個例子有什麼區別?它們都輸出相同的CSS,但第一個不允許僅有類的元素。爲什麼有些地方使用第一個例子?

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

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

您是否嘗試過[首先查看文檔?](http://sass-lang.com/documentation/file.SASS_REFERENCE.html#interpolation_)。 (另請參閱:http://sass-lang.com/documentation/file.SASS_REFERENCE.html#sass-script-strings) – cimmanon

+0

我一直在查看他們的文檔,但沒有發現!謝謝你指點我。 – Brigante

+0

在頁面上搜索'#{'會找到它。 – cimmanon

回答

14

#{}用於字符串插值:http://sass-lang.com/documentation/file.SASS_REFERENCE.html#interpolation_

有一個例外,雖然:使用#{}插值時,引用的字符串是帶引號。這使得它更易於使用,例如在mixin中選擇器名稱。例如。

所以這種技術有時被用來允許在選擇器中使用sass值。例如:

$gutter: 10; 

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

現在你的問題。我實在看不出有任何理由爲什麼會有人用串插在這個選擇:

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

我最好的猜測是,青菜變量將在以後添加到該選擇,或者選擇將一個變量被完全取代。

+1

謝謝@jzelenkov非常有幫助!抱歉,如果沒有在cimmanon指出的文檔中發現此問題, – Brigante

+0

這實際上是一個有趣的問題。你在哪裏看到那個sass代碼?或者它是專有軟件? –

+0

我在Typomatic庫中看到了這個,不完全一樣,但是從查看文檔我看不到使用插值的必要性https://github.com/andrejmlinarevic/typomatic/blob/master/assets/sass/_typomatic .scss#L48 – Brigante