【问题标题】:Using mixin in scss file在 scss 文件中使用 mixin
【发布时间】:2021-11-20 21:40:26
【问题描述】:

我有一个文件 default.scss,在文件中我有这个 css

        .excelGridCell { 
            background: $nav-background;
            height: 2.5em;
            border-radius: .8rem;
        }

我像这样在同一个文件中创建了一个 mixin,因为我想使用 mixin 来重用这个 css。

        @mixin special-button {
            .excelGridCell {
                background: $nav-background;
                height: 2.5em;
                border-radius: .8rem;
            }
        }

然后像这样在同一个文件(default.scss)中调用它。

        .excelGridCell{
            @include special-button
        }

这不起作用。这是在 scss 中使用 mixin 的正确方法吗?

【问题讨论】:

  • “这不起作用”是什么意思?是不是哪里出错了?
  • 我应用的css在我的页面加载时没有显示出来。
  • 如果 sass 没有报告任何错误,您可以查看它生成的 .css 文件,并查看那里的所有类是否按预期显示。这可能会给你一些关于问题根源的线索。

标签: scss-mixins


【解决方案1】:

你不想在你的 mixin 中使用类选择器。

这就是它没有被应用的原因。

@mixin special-button {
    background: $nav-background;
    height: 2.5em;
    border-radius: .8rem;
}

将您的 mixin 更改为上述内容,它将起作用。你几乎拥有它。根据您编写的代码,选择器的工作方式将查找具有 class="excelGridCell" 的元素,然后查找具有 class="excelGridCell" 的嵌套元素。

另外,我通常只将 mixins 用于需要参数(可能带有默认值)的东西。

对于这个用例,您可能只想使用带有一些继承的@extend。

参见“扩展/继承”部分

https://sass-lang.com/guide

但这可能有点像宗教战争 https://csswizardry.com/2014/11/when-to-use-extend-when-to-use-a-mixin/

【讨论】:

    猜你喜欢
    • 2018-12-26
    • 2014-10-20
    • 2022-01-16
    • 2020-03-11
    • 1970-01-01
    • 2021-07-11
    • 2020-03-31
    • 2012-10-21
    • 2017-10-18
    相关资源
    最近更新 更多