2014-04-24 11 views
10

Załóżmy, że mam zmiennej:Sass - Sprawdź, jaki rodzaj wartości zmiennej ma

$var: 5px; 

ale gdzieś w kodzie jej wartość nie zmieniła się, by możliwie kolorze, numer, opinię, rm itp.

Czy istnieje funkcja do wykrywania, który rodzaj wartości ma?

tj

@if is-color($var) { //do something } 

wiem, że jest funkcja NO-color w Sass ale istnieją inne sposoby, aby to zrobić lub funkcji?

Odpowiedz

18

Z dokumentacji Sass:

type_of ($ value)

Zwraca typ wartości.

Przykłady:

type-of(100px) => number 
type-of(asdf) => string 
type-of("asdf") => string 
type-of(true) => bool 
type-of(#fff) => color 
type-of(blue) => color 

http://sass-lang.com/documentation/Sass/Script/Functions.html#type_of-instance_method

(Uwaga - i _ zamiennie w funkcji Sass).

+3

także może być lista, np: 'od typu (10px 10px 0 1rem) => list' – sospedra

+0

@Deerloper Ok, to miłe, ale ja po prostu powołując się na dokumentację. – cimmanon

+0

tak, nie mówię, że to jest złe, po prostu dodając więcej informacji, btw, właśnie odkryłem: P – sospedra

3

być nieco jaśniejsze, oto jak można użyć typu z:

@if type-of($my-variable) == string { 
    /* do something */ 
} 

Oprócz typów przedstawionych w docs, typ-of także powrócić „mapy”, jeśli uchwalił mapę Sass obiekt:

$font-sizes: (
    small: rem-calc(18px), 
    medium: rem-calc(20px), 
    large: rem-calc(22px) 
); 

@if type-of($font-sizes) == map { 
    /* do map-related thing */ 
} @else { 
    /* do other thing */ 
} 
Powiązane problemy