首頁>Program>source

我尝試構建一些通用的邊距/填充混合...

這是我的代碼:

[class*="shift"] {
  $sft-o: 10px;
  @mixin shift_stp($val) {
    &[class*="_sml"]{ $val: $sft-o; }
    &[class*="_mid"]{ $val: $sft-o * 2; }
    &[class*="_big"]{ $val: $sft-o * 3; }
  }
  &[class*="_m"]{
    @include shift_stp(margin);
  }
  &[class*="_p"]{
    @include shift_stp(padding);
  }
}

有些事情不對,所以我想知道是否可以將一些CSS屬性設置為mixin值吗? 有人可以帮忙吗?

最新回復
  • 5月前
    1 #

    如果要使用變數作為屬性名稱,則需要使用 string interpolation - #{$var}

    這應该可行:

    [class*="shift"] {
      $sft-o: 10px;
      @mixin shift_stp($val) {
        &[class*="_sml"]{ #{$val}: $sft-o; }
        &[class*="_mid"]{ #{$val}: $sft-o * 2; }
        &[class*="_big"]{ #{$val}: $sft-o * 3; }
      }
      &[class*="_m"]{
        @include shift_stp(margin);
      }
      &[class*="_p"]{
        @include shift_stp(padding);
      }
    }
    
    演示

    Just a note: 為您的屬性選擇器... *="_m" 也將適用於有 _mid 在他们裏面(见 here )...所以也许您應该重新考虑一下。

  • java:ThreadSleep()冻結
  • scheme:仅使用"小計划者"中的表格来拼合列表