2011-09-27 13 views
5

Voglio fare questo:È possibile assegnare uno stile ai genitori di un certo tipo di elemento in SASS?

.classname { 
    color: red 

    a& { 
    color: blue; 
    } 
} 

e per la sua compilazione a:

.classname { 
    color: red; 
} 

a.classname { 
    color: blue; 
} 

C'è sintassi disponibili per sostenere questo? Ho provato a utilizzare a&, #{a&} e la funzione bussola #{append-selector("a", "&")} ma non si compila, lo fa a &, ma i risultati, ovviamente, in a .classname anziché a.classname.

risposta

-1

Questo non è realmente possibile con la sintassi nidificata per SASS. Da SASS reference:

La regola interna si applica solo all'interno del selettore della regola esterna.

Le regole nidificate sono zucchero sintattico che rende più semplice scrivere CSS descendent selectors, poiché sono uno dei costrutti CSS più comuni. Mentre è bello usare il tuo approccio per scrivere quel tipo di regola, non è ciò che la sintassi è progettata (o definita) per fare.

+1

In realtà, l'unica differenza tra ciò che è "progettato per fare" e quello che sta cercando di fare è che sta tentando di usare un ** tag ** invece di un ** class **, ** attributo ** o ** pseudo selettore **. '& .cool',' & [href] ',' &: hover' funzionano tutti, 'a &' o '& a' no. –

+0

@ bfred.it Cosa? E non è ancora possibile - vale la pena scendere? – derekerdmann

+0

Sì, mi dispiace. Metà di questa informazione è errata e irrilevante. Sono contento di annullare l'inversione se questo è corretto –

0

Ho provato a pensare attraverso varie opzioni che ti permettessero di farlo, ma posso solo tornare con "perché"? Qual è il caso d'uso, e perché hai bisogno di fare questo vs qualcos'altro che raggiunge lo stesso risultato di quello che ti piacerebbe fare.

0

Non sono riuscito a trovare una soluzione per i tag, ma in questo caso specifico è possibile utilizzare &[href]. E 'più lento, ma in realtà è più preciso (alcune <a> tag potrebbero non essere link.)

Speriamo che presto saremo in grado di utilizzare &:any-link (What's the :any-link pseudo-class for?), ma non è supportato dai browser ancora

Problemi correlati