2013-06-20 24 views
43

Sử dụng Sass, tôi muốn có nhiều điều kiện trong IF tuyên bốSử dụng nhiều điều kiện (AND) trong Sass NẾU tuyên bố

gì tôi sử dụng ngay bây giờ:

@function color-x ($alpha) { 
    @if  $accent == red {@return red($alpha)} 
    @else if $accent == green {@return green($alpha)} 
    @else if $accent == blue {@return blue($alpha)} 
} 

My ngây thơ (thất bại) cố gắng sử dụng nhiều điều kiện:

@function color-x ($alpha) { 
    @if  $accent == red && theme == light {@return red($alpha)} 
    @else if $accent == green && theme == light {@return green($alpha)} 
    @else if $accent == blue && theme == light {@return blue($alpha)} 
} 

Có thể có nhiều điều kiện không ion?

Trả lời

82

Từ các tài liệu tham khảo ngôn ngữ Sass:

Operations Boolean

SassScript hỗ trợ and, or, và not nhà khai thác cho các giá trị boolean.

(link)

Vì vậy, một khi biểu hiện tuyên bố với một điều kiện hợp chất sẽ trông như thế này:

@if $var1 == value1 and $var2 == value2 { 
    // ... 
} 

Hơn nữa, dấu ngoặc đơn có thể được sử dụng làm ảnh hưởng đến trật tự của các hoạt động trong một biểu thức phức tạp hơn:

@if ($var1 == value1 and not ($var2 == value2)) or ($var3 == value3) { 
    // ... 
} 
+0

Cảm ơn rất nhiều. – 500

+2

Trong trường hợp bất kỳ ai khác chạy vào phần này, phần 'và' phải là chữ thường - sử dụng AND (tất cả các chữ hoa) không hoạt động. – cantera

+0

Bằng cách nào đó tôi đã sử dụng '&&' trong sass như JS !!! Cảm ơn bạn đã làm rõ! –

2

Bạn cũng có thể làm:

@if index("foo" "bar", $value) { .. } 

Cẩn thận mặc dù:

  1. Nó có thể không được khá rõ ràng những gì bạn đang cố gắng làm.
  2. Nó trả về một số hoặc null, không phải là boolean.
Các vấn đề liên quan