2012-07-04 10 views
28

Nel codice this c'è un selettore css &:hover che cosa corrisponde a quel selettore?Cosa seleziona il selettore "&"?

+0

Se avete guardato con attenzione, probabilmente si potrebbe avere visto che non c'è (SCSS) scritto accanto al titolo della scheda CSS. –

+0

@Truth: supponendo che il commento fosse diretto a me, allora sì: l'ho visto. Stavo comunque affrontando l'affermazione esplicita nella domanda stessa: "... c'è un selettore css' &: hover'. " Forse avrei dovuto renderlo più chiaro, però. –

+0

Stavo conducendo all'OP –

risposta

28

credo che la e commerciale è una caratteristica Sass. Dalla documentazione:

Referencing Parent Selectors: &

A volte è utile usare il selettore madre di una regola nidificato in altri modi da quello predefinito. Ad esempio, potresti voler avere speciali stili per quando il selettore viene posizionato sopra o quando l'elemento body ha una certa classe. In questi casi, è possibile esplicitamente specificare dove il selettore genitore deve essere inserito utilizzando il carattere & .

26
Esattamente

. In Sass si potrebbe avere qualcosa di simile ...

div { 
    background: green; 

    p { 
     background: red; 

     &:hover { 
      background: blue; 
     } 

     &:active { 
      background: blue; 
     } 
    } 
} 

... che una volta convertito in CSS sarebbe diventato questo:

div { 
    background: green; 
} 

div p { 
    background: red; 
} 

div p:hover { 
    background: blue; 
} 

div p:active { 
    blue; 
} 

Edit: da & hover: a &: hover

+0

Sul tuo secondo blocco di codice, non dovrebbe essere 'div p: hover {background: blue; } 'e' div p: active {background: blue; } '? Ne cito solo per chiarire ... – Beat

+0

Sì. Ovviamente. Mi scuso. Stupido errore. Fisso. – banzomaikaka

3

Un utilizzo meno noto è che è possibile aggiungere la e commerciale alla fine di uno stile in modo che il selettore principale diventi figlio.

esempio:

h3 
    font-size: 20px 
    margin-bottom: 10px 

.some-parent-selector & 
    font-size: 24px 
    margin-bottom: 20px 

diventa,

h3 { 
    font-size: 20px; 
    margin-bottom: 10px; 
    } 

    .some-parent-selector h3 { 
    font-size: 24px; 
    margin-bottom: 20px; 
    } 

si può leggere di più su & uso qui

http://thesassway.com/intermediate/referencing-parent-selectors-using-ampersand

Problemi correlati