css - 如何使 Sass mixin 在基层声明非嵌套选择器?

标签 css sass mixins

很抱歉这个问题的语言很奇怪,但我不知道如何更好地描述它。我希望这个例子能清楚地说明我想要什么:

scss 语法

.my-smug-selector {
    @include my-smug-mixin(30px);
}

所需的 css 输出

.my-smug-selector{
   // some styles
}

.another-smug-selector-on-base-lvl{
    // some other styles 
}

.smug-non-nested-selector{
    // some other styles 
} 

总的来说,我对此很感兴趣,但为了解释我为什么要这样做:我想定义一个关键帧动画,它被指定的选择器使用,例如:

scss 语法

.my-smug-selector {
    @include my-smug-mixin($vars);
}

所需的 css 输出

.my-smug-selector{
    animation: most-smugish-animation 5s;
}

@keyframes most-smugish-animation {
    from {background:red;}
    to {background:yellow;}
}

最佳答案

使用 Sass 3.3(目前仍在开发中),你可以这样写:

@mixin smugmation() {
    animation: most-smugish-animation 5s;

    @at-root {
        @keyframes most-smugish-animation {
            from {background:red;}
            to {background:yellow;}
        }
    }
}

.my-smug-selector {
    @include smugmation;
}

否则,您必须将选择器的名称作为参数传递给混入:

@mixin smugmation($sel) {
    #{$sel} {
        animation: most-smugish-animation 5s;
    }

    @keyframes most-smugish-animation {
        from {background:red;}
        to {background:yellow;}
    }
}

@include smugmation('.my-smug-selector');

关于css - 如何使 Sass mixin 在基层声明非嵌套选择器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21270492/

相关文章:

html - 页面加载时看不到整个背景高度

jquery - 幻灯片中的图像没有响应

css - 分组 SCSS (Sass) Mixins

Python多重继承问题

javascript - 有没有类似 Ruby 的 JavaScript 模块

layout - 2个div,调整顶部一个保持底部固定高度

html - 增加输入占位符中 html 特殊字符 (·) 的大小

macos - 警告 : spawn ENOENT Use with Grunt sass task

maven - sass-maven-plugin 不编译 scss 文件

oop - Mixin 与继承