CSS/SASS : Parent declaration in SASS

标签 css sass

这在 SASS 中是什么样子的?我不明白它会是什么样子。

.icon-button .up-arrow, 
.icon-button .down-arrow {
    background-image: url('/images/icons/sprites.png');
} 

.icon-button .down-arrow {
    background-position:20px 0;
}

.icon-button .up-arrow {
    background-position:40px 0;
}

最佳答案

你可以尝试这样的事情:

.icon-button {
    .down-arrow, .up-arrow {
        background-image: url('/images/icons/sprites.png');
    }

    .down-arrow {
        background-position:20px 0;
    }

    .up-arrow {
        background-position:40px 0;
    }
}

除许多其他功能外,SASS 还允许您添加嵌套规则。

这在您的情况下可能有点矫枉过正,但您也可以参数化一些值。仅用于演示目的:

$first: 20px;
$second: 40px;

.icon-button {
    .down-arrow, .up-arrow {
        background-image: url('/images/icons/sprites.png');
    }

    .down-arrow {
        background-position: $first 0;
    }

    .up-arrow {
        background-position: $second 0;
    }
}

如果你真的想疯狂使用它,你可以创建可重用的函数(或 SASS 术语中的“mixins”):

@mixin calcBackground($padding) {
    background-position: ($padding + 20px) 0;
}

.icon-button {
    .down-arrow, .up-arrow {
        background-image: url('/images/icons/sprites.png');
    }
    .down-arrow {
        @include calcBackground(0px);
    }

    .up-arrow {
        @include calcBackground(20px);
    }
}

关于CSS/SASS : Parent declaration in SASS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7420017/

相关文章:

html - 悬停时使文本出现在其他地方

javascript - 模拟 SO 标签编辑器

javascript - 如何在 Grunt 中使用 stylelint?

css - 如何在 SASS 中随机化 float 和百分比?

angular - 如何用 Angular CLI 替换 SCSS 文件?

javascript - 如何在使用 JQuery 到达最后一张幻灯片时不显示下一张幻灯片?

html - 选择标签的设置宽度不起作用

sass - 使用 scss 覆盖 bootstrap 4 主按钮样式

css - Sass 在 Laravel Mix ^4.0.7 中将背景位置值编译为 100%

html - 使图像链接适合容器 div 并将其中的文本居中