2014-04-24 9 views
10

Angenommen, ich habe eine Variable:Sass - Überprüfen Sie, welche Art von Wert eine Variable hat

$var: 5px; 

aber irgendwo im Code haben ihren Wert geändert, um mögliche Farbe, Nummer, em, rm etc.

Gibt es eine Funktion, um zu erkennen, welche Art von Wert es hat?

d.h

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

ich weiß, gibt es keine IS-Farbfunktion in sass aber gibt es andere Methoden, um dies oder Funktion zu tun?

Antwort

18

Vom Sass Dokumentation:

type_of ($ value)

Gibt den Typ eines Werts.

Beispiele:

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

(beachten Sie, dass - und _ in Sass Funktionen austauschbar ist).

+3

kann auch Liste, zB: 'Typ-of (10px 10px 0 1rem) => list' – sospedra

+0

@Deerloper Ok, das ist schön, aber ich zitiere nur die Dokumentation. – cimmanon

+0

yup, ich sage nicht, dass es schlecht ist, nur weitere Informationen hinzufügen, BTW, ich habe gerade entdeckt: P – sospedra

3

Um ein wenig klarer, hier zu sein, wie Sie Art-of verwenden könnten:

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

Zusätzlich zu den Typen in der Dokumentation gezeigt, Typ-of wird auch zurückkehren ‚Karte‘ eine SASS Karte, wenn übergeben Objekt:

$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 */ 
} 
Verwandte Themen