2014-07-22 8 views
7

Ho appena trovato l'uso del segno di cancelletto al di fuori di un ciclo in sass e non sono sicuro di cosa sia usato o quale sia il motivo.Che cosa fa il segno hash (#) sui loop esterni in SASS?

Qual è la differenza tra questi due esempi per favore? Entrambi producono lo stesso css, ma il primo non consente solo elementi di classi. Perché il primo esempio è in uso in alcuni posti?

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

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

Hai provato [guardando prima la documentazione?] (Http://sass-lang.com/documentation/file.SASS_REFERENCE.html#interpolation_). (vedi anche: http://sass-lang.com/documentation/file.SASS_REFERENCE.html#sass-script-strings) – cimmanon

+0

Ho controllato tutta la mattina i loro documenti e non l'ho trovato! Grazie per avermelo fatto notare. – Brigante

+0

Cercare la pagina per '# {' l'avrebbe trovato. – cimmanon

risposta

14

#{} viene utilizzato per l'interpolazione della stringa: http://sass-lang.com/documentation/file.SASS_REFERENCE.html#interpolation_

C'è una sola eccezione a questa, però: quando si utilizza # {} interpolazione, ha citato le stringhe sono non quotati. Questo rende più facile l'utilizzo, ad es. i nomi dei selettori in mixin. Per esempio.

Quindi questa tecnica viene utilizzata a volte per consentire l'utilizzo di valori sass nei selettori. Es .:

$gutter: 10; 

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

Ora alla tua domanda. Io davvero non vedo alcuna ragione per cui qualcuno dovrebbe utilizzare stringa di interpolazione in questo selettore:

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

La mia ipotesi migliore è che variabile sass sarà aggiunto in seguito a quella di selezione, o il selettore sarà completamente sostituita con una variabile .

+1

Grazie @jzelenkov molto utile! E scusa per non averlo visto prima nei documenti come ha fatto notare cimmanon! – Brigante

+0

Questa è in realtà una domanda interessante. Dove hai visto quel codice sass? O è un software proprietario? –

+0

Ho visto questo nella libreria Typomatic, non esattamente la stessa, ma guardando i documenti non riesco a vedere la necessità di usare l'interpolazione https://github.com/andrejmlinarevic/typomatic/blob/master/assets/sass/_typomatic .scss # L48 – Brigante