2012-09-14 10 views
11

zmienna może przyjąć procentowe lub px wartości, jak:warunkowe CSS z mniej, w oparciu o zmienną

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

Jak mogę określić pewien zbiór reguł CSS, jeśli wartość jest w pikselach i inny zestaw reguł, jeśli wartości podano w procentach?

Czy istnieje coś takiego jak

if(isValueInPixels(@some-var)){ 

    // css rules here 


}else{ 

    // other rules here 
} 

?

+0

Dlaczego chcesz to zrobić? –

Odpowiedz

16

Myślę, że możesz użyć czegoś, co nazywają Strzeżonymi Mixinami.

Spróbuj coś takiego ...

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

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

Zobacz strzeżony Wstawki w http://lesscss.org/

+0

Znalazłem to, czego potrzebowałem, oprócz tej odpowiedzi było domyślne, które jest możliwe za pomocą funkcji 'default()'. Z dokumentacji na http://lesscss.org/features/#mixin-guards-feature-citional -mixins '.mixin (@a) when (default()) {...}' – Ash

2

Jak zauważył Adam Spicer się strzeżony Wstawki są najlepszym rozwiązaniem. Jednak LESS oferuje teraz rozwiązanie do grupowania wielu strażników, co pozwoli na osiągnięcie tego przy pomocy pojedynczego mixina. http://lesscss.org/features/#css-guards-feature

Dla przykładu:

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

Zastosowanie:

selector{ 
    .mixin(50px); 
    .mixin(46%); 
} 
Powiązane problemy