Soru SCSS karışımında if / else koşulu için sözdizimi


Merhaba, SASS / SCSS'yi öğrenmeye çalışıyorum ve netlik için kendi mixinimi yeniden düzenlemeye çalışıyorum

ne isterim ki mixin genişliğini geçip geçmediğime bağlı olarak mixin.

Şimdiye kadar düşünceler (sadece diğer mixins dahil olacak gibi sözde kodu)

@mixin clearfix($width) {

   @if !$width {

    // if width is not passed, or empty do this

   } @else {

        display: inline-block;
        width: $width;
   }
}

Burada nasıl arayacağımı düşündüm ama işe yaramıyor.

@include clearfix();

veya

@include clearfix(100%)

veya

@include clearfix(960px)

Bunu yapmak için en iyi ya da doğru yol hakkında herhangi bir yardım için teşekkür ederiz!


90
2018-03-28 08:36


Menşei


Lütfen Ryan James'in cevabına bakın - şu anda kabul edilen olandan çok daha iyi. =) - Quinn Strahl


Cevaplar:


Bunu deneyebilirsin:

$width:auto;
@mixin clearfix($width) {

   @if $width == 'auto' {

    // if width is not passed, or empty do this

   } @else {
        display: inline-block;
        width: $width;
   }
}

İstediğiniz sonucundan emin değilim, ancak varsayılan bir değerin ayarlanması yanlış yapılmalıdır.


121
2018-03-29 05:43



yapar, teşekkür ettim " " ama otomatik değerini daha iyi severim :) - değişken değer ayarlamanıza gerek yoktu, ancak ben mixin sözdizimini varsayılan değer olarak koyuyorum @mixin clearfix($width: auto) {...  teşekkür ederim :) - clairesuzy
$ Width vermek için herhangi bir amaç var: auto; varsayılan değer olarak? - Krish


İlk olarak mixini oluştururken varsayılan parametre değerlerini satır içi atayabilirsiniz:

@mixin clearfix($width: 'auto') {

  @if $width == 'auto' {

    // if width is not passed, or empty do this

  } @else {

    display: inline-block;
    width: $width;

  }
}

191
2018-02-28 20:02



Bu kabul edilen cevap olmalı! Varsayılan bir parametre kullanmak daha iyi / temiz. - Think Graphical
Kabul. OP'in sorununu çözmenin doğru yolu budur. - micjamking
@hellaFont: Lütfen geçersiz düzenlemeler eklemeyin. Kod eklemek veya değiştirmek, bir cevabın anlamını değiştirecektir. Bir yorum yeterli olacaktır. - Brian