css - 有没有可选的&这样的东西?

标签 css sass

考虑以下代码:

@mixin bar() {
    @if & {
        &.bar {
            display: none;
        }
    } @else {
        .bar {
            display: none;
        }
    }
}

@include bar();

.foo {
    @include bar();
}

...编译为:

.bar {
    display: none;
}

.foo.bar {
    display: none;
}

有没有一种方法可以在不复制 .bar block 的情况下编写这个 mixin?

最佳答案

您可以将其视为具有可以轻松更改的默认值的参数:

@mixin bar($c:'.bar') {
    @if & {
        &#{$c} {
            display: none;
        }
    } @else {
        #{$c} {
            display: none;
        }
    }
}

关于css - 有没有可选的&这样的东西?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53788521/

相关文章:

css - 一个接一个地为 SCSS mixin 使用多个参数

CSS @media 指令不适用于移动浏览器

css - HTML 5 浏览器和分辨率与 XHTML 的兼容性

css - IE 7 左中右对齐没有表格

css - 使用 weex 和 vue 加载 sass 为每个组件提供 "Error: undefined:n1:n2: property missing ' :'"

css - Compass (SASS) 不向线性渐变添加供应商前缀

css - 边界上的 Z 索引

html - Nth-of-type 就像 nth-child 一样工作,我无法在非常简单的标记中选择我想要的

sass - polymer 1.1 和 SASS

css - 将 CSS 前缀选择器与 SASS 符号一起使用