【问题标题】:math in SCSS mixin as part of for loopSCSS mixin 中的数学作为 for 循环的一部分
【发布时间】:2016-05-19 05:33:53
【问题描述】:

我有一个要发送到 mixin 的 for 循环,但是当我实际在 -webkit-transform: rotate(($number*30)deg); 中进行数学运算时,我想从计数中减去 1,我不断收到无效的 css 错误。

@mixin rotate($count){
  $number: #{$count}{-1};
    .sk-circle#{$count} {
    -webkit-transform: rotate(($number*30)deg);
    -ms-transform: rotate(30deg);
    transform: rotate(30deg);
  }
}

@for $i from 2 through 12{
  @include rotate($i)
}

【问题讨论】:

标签: css sass compass-sass


【解决方案1】:

代码中的几个问题:

  • $number 定义中删除#
  • 您可以将$number 乘以Xdeg,它会添加单位

这是更新版本:

@mixin rotate($count){
  $number: $count - 1;
    .sk-circle#{$count} {
    -webkit-transform: rotate($number*30deg);
    -ms-transform: rotate($number*30deg);
    transform: rotate($number*30deg);
  }
}

@for $i from 2 through 12{
  @include rotate($i)
}

编译为:

.sk-circle2 {
  -webkit-transform: rotate(30deg);
  -ms-transform: rotate(30deg);
  transform: rotate(30deg);
}

.sk-circle3 {
  -webkit-transform: rotate(60deg);
  -ms-transform: rotate(60deg);
  transform: rotate(60deg);
}

.sk-circle4 {
  -webkit-transform: rotate(90deg);
  -ms-transform: rotate(90deg);
  transform: rotate(90deg);
}

.sk-circle5 {
  -webkit-transform: rotate(120deg);
  -ms-transform: rotate(120deg);
  transform: rotate(120deg);
}

.sk-circle6 {
  -webkit-transform: rotate(150deg);
  -ms-transform: rotate(150deg);
  transform: rotate(150deg);
}

.sk-circle7 {
  -webkit-transform: rotate(180deg);
  -ms-transform: rotate(180deg);
  transform: rotate(180deg);
}

.sk-circle8 {
  -webkit-transform: rotate(210deg);
  -ms-transform: rotate(210deg);
  transform: rotate(210deg);
}

.sk-circle9 {
  -webkit-transform: rotate(240deg);
  -ms-transform: rotate(240deg);
  transform: rotate(240deg);
}

.sk-circle10 {
  -webkit-transform: rotate(270deg);
  -ms-transform: rotate(270deg);
  transform: rotate(270deg);
}

.sk-circle11 {
  -webkit-transform: rotate(300deg);
  -ms-transform: rotate(300deg);
  transform: rotate(300deg);
}

.sk-circle12 {
  -webkit-transform: rotate(330deg);
  -ms-transform: rotate(330deg);
  transform: rotate(330deg);
}

【讨论】:

  • 是的,复制/粘贴错误。我已更新解决方案以包含 deg
  • 你很接近,只是一些小问题。如果您还没有尝试过 Sassmeister 或 Codepen,那么它们非常适合快速尝试此类事情。
  • 我正在使用 Sassmeister 并尝试了几种排列方式,但无法获得正确的组合。 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-05
  • 1970-01-01
  • 2017-04-18
  • 1970-01-01
  • 2018-09-11
  • 1970-01-01
相关资源
最近更新 更多