2012-09-27 13 views
7

Diciamo che ho uno stile definito utilizzando meno:Riutilizzo stili nidificati MENO

ul.unstyled, 
ol.unstyled { 
    margin-left: 0; 
    list-style: none; 
} 

Più tardi, voglio ri-utilizzare la classe unstyled:

.my-list { 
    .unstyled; 
} 

Questo non funziona comunque, e non riesco a capire la magia per farlo funzionare. qualche idea?

risposta

5

Non è possibile riutilizzare definizioni di classi arbitrarie, solo mixin (quelle che iniziano con un punto). In questo caso dovrai duplicarlo.

+2

implica che LESS crea un mixin senza parametri quando si definisce '.myClass'? –

+0

Buona domanda. Penso di sì, perché secondo la documentazione i mixin sono solo classi: "I mixins ti permettono di incorporare tutte le proprietà di una classe in un'altra classe semplicemente includendo il nome della classe come una delle sue proprietà. È proprio come le variabili, ma per intere classi ". –

3

Prova questo:

.unstyled { 
    margin-left: 0; 
    list-style: none; 
} 

.my-list { 
    .unstyled; 
} 

Non sarà in grado di nido .unstyled se è definita come ul.unstled e ol.unstyled.

+0

Quello non funziona per me perché non possiedo la definizione originale ... in altre parole, la classe 'unstyled' è definita in' Bootstrap.less' e vorrei evitare di modificare la dipendenza. Invece, voglio sapere come riutilizzare uno stile annidato. –

+0

Ah. Se non lo fai/non puoi ignorare quegli stili, non sono sicuro che potrai riutilizzarlo nel modo che preferisci. MENO non ti permette di specificare '' ul.unstyled'' o simile come classe annidata. Potresti sempre creare un mixin, ma questo sarebbe la duplicazione del codice. –

1

Poiché non è possibile riutilizzare .unstyled quando è uno stile nidificato e probabilmente non si vuole modificare il codice sorgente Bootstrap, io suggerisco di appena assegnare entrambi classnames alla tua lista:

<ul class="unstyled my-list" />