2015-02-08 13 views

risposta

12

LESS - Parent Selectors

L'operatore & rappresenta i selettori controllanti di una regola nidificata e è più comunemente usato quando si applica una classe modificante o pseudo-classe per un selettore esistente.

Dal & rappresenta il genitore, si potrebbe semplicemente usare & + &:

.menu-link { 
    & + & { 
     border-left: 1px solid #000; 
    } 
} 

..che compila a:

.menu-link + .menu-link { 
    border-left: 1px solid #000; 
} 

Come nota a margine, & si riferisce alla intero selettore genitore. Quindi, se si dovesse utilizzare il seguente:

.parent { 
    .menu-link { 
    & + & { 
     border-left: 1px solid #000; 
    } 
    } 
} 

..è sarebbe compilare al risultato indesiderato di:

.parent .menu-link + .parent .menu-link { 
    border-left: 1px solid #000; 
} 

Pertanto si avrebbe bisogno di mantenere i selettori semplici e utilizzare

.menu-link { 
    & + & { 
     border-left: 1px solid #000; 
    } 
} 
+0

Bella risposta. Nel caso di selettori annidati, potremmo usare le variabili per memorizzare il nome del selettore e fare l'interpolazione del selettore come [qui] (http://codepen.io/anon/pen/myqvbM). Ciò significherebbe che un cambiamento deve avvenire solo in un posto. Ma se ci sono più casi simili richiederebbe più variabili e potrebbe diventare disordinato. – Harry

Problemi correlati