【问题标题】:Not sure how to fix this bug不知道如何修复这个错误
【发布时间】:2016-10-09 09:01:36
【问题描述】:

我正在尝试将一些 less 转换为 sass,但无法理解如何修复以下错误。这不是我的代码,它是客户,我不知道他们在做什么。

有人可以帮我吗?如何修复以下错误?我花了过去两个小时试图弄清楚如何解决它。

问题: “错误(第 6 行:“...ze:, $key:1) 之后的无效 CSS”:预期的“{,是“($size =

代码示例:

    @mixin margin($label, $size: 1, $key:1) ($size =< 30)
{
      .m-${key} {
        margin: $size !important;
    }

    .m-t-${key} {
        margin-top: $size !important;
    }

    .m-b-${key} {
        margin-bottom: $size !important;
    }

    .m-l-${key} {
        margin-left: $size !important;
    }

    .m-r-${key} {
        margin-right: $size !important;
    }
}

非常感谢您!

【问题讨论】:

  • 为您的问题选择一个有意义的标题
  • 问题的标题应该是描述性的。
  • 好的,有人明白这段代码想要完成什么吗?
  • Less 不使用@mixin 指令,也不使用$ 作为变量的前缀。所以你给出的代码肯定不是Less。

标签: css sass less frontend bootstrap-sass


【解决方案1】:

我相信他们正在使用 LESS mixin 保护,需要将其转换为 SASS 条件

@mixin margin($label, $size: 1, $key:1)
{
   @if ($size <= 30) {
      ...
   }
}

【讨论】:

  • 好的,我将转换为有条件的。您是否偶然理解了这段代码试图完成的任务?
  • 我相信 tt 试图说“当$size 小于或等于30 时应用以下混合样式”,尽管它缺少when 关键字。查看 LESS 参考手册了解更多信息:lesscss.org/features/#mixin-guards-feature
  • 好的,非常感谢。但是 ${key} 的目的是什么?我仍然收到一条错误消息,我想我需要在 ${key} 中填写一些内容,但我不确定是什么内容。
  • $key 的目的是生成适当的 CSS 类选择器。他们基本上是在创建一个类结构来为元素添加边距。假设您希望 m-t-5 在元素顶部应用 5px 边距。然后你会像这样@include margin('', 5px, 5) 调用mixin(不知道为什么有$label)。每当将类添加到元素时,mixin 将创建 m-t-5 类以添加 margin-top。它还创建m-5 来应用边距,m-b-5 用于底部边距,等等。
  • @Harry,我知道。我认为有问题的代码是 OP 将 LESS 代码转换为 SASS 的尝试,他们很难理解 LESS mixin 守卫在做什么。
猜你喜欢
  • 1970-01-01
  • 2021-06-19
  • 1970-01-01
  • 2019-10-29
  • 2015-01-11
  • 2014-08-26
  • 2023-04-01
  • 1970-01-01
  • 2018-10-16
相关资源
最近更新 更多