2012-09-14 15 views
11

la variable puede tomar valores porcentuales o píxeles, como:reglas CSS condicionales con menos, en base a variables

@some-var: 50px; o @some-var: 46%;

¿Cómo puedo definir un cierto conjunto de reglas CSS si el valor es en píxeles , y un conjunto diferente de reglas si los valores están en porcentajes?

¿Existe algo así como

if(isValueInPixels(@some-var)){ 

    // css rules here 


}else{ 

    // other rules here 
} 

?

+0

por qué quiere hacerlo? –

Respuesta

16

Creo que puedes usar algo que ellos llaman Mixins guardados.

Pruebe algo como esto ...

.mixin (@a) when (ispixel(@a)) { 
/* ... your pixel specific logic ... */ 
} 
.mixin (@a) when (ispercentage(@a)) { 
/* ... your percentage specific logic ... */ 
} 

.coolStuff { 
.mixin(50px); 
.mixin(50%); 
} 

Véase el vigilado Mixins en http://lesscss.org/

+0

Encontré lo que necesitaba además de que esta respuesta era un valor predeterminado que es posible usando la función 'default()'. De los documentos en http://lesscss.org/features/#mixin-guards-feature-conditional-mixins '.mixin (@a) when (default()) {...}' – Ash

2

Como Adam Spicer señaló la vigilado Mixins son la mejor solución. Sin embargo, LESS ahora ofrece una solución para agrupar varias protecciones, lo que permitirá que esto se logre con una sola mezcla. http://lesscss.org/features/#css-guards-feature

Por ejemplo:

.mixin(@a){ 
    & when (ispixel(@a)){ 
    //logic 
    } 
    & when (ispercentage(@a)){ 
    //logic 
    } 
} 

Uso:

selector{ 
    .mixin(50px); 
    .mixin(46%); 
} 
Cuestiones relacionadas