在SASS中访问当前类的属性,如背景色

在SASS中访问当前类的属性,如背景色,sass,Sass,在SASS中工作时,我发现自己一直想引用当前类的属性。通常,这是一种使事情更加可重用或处理交互的方法。例如: .circle background-color: $brandColor .circle:hover background-color: $brandColor + 50 .square background-color: $brandColor1 .square:hover background-color: $brandColor1 + 50 我更希望代码写得更干

在SASS中工作时,我发现自己一直想引用当前类的属性。通常,这是一种使事情更加可重用或处理交互的方法。例如:

.circle
  background-color: $brandColor
.circle:hover
  background-color: $brandColor + 50
.square
  background-color: $brandColor1
.square:hover
  background-color: $brandColor1 + 50
我更希望代码写得更干净利落,如下所示:

.circle
  background-color: $brandColor
.square
  background-color: $brandColor1
.circle:hover,
.square:hover
  background-color: &background-color + 50

这在SASS中是可能的吗?

不,在SASS中没有类似的东西。你需要用一个调味品来获得你想要的干燥度

@mixin colorize($color) {
    background-color: $color;

    &:hover {
        background-color: $color + 50;
    }
}

.circle {
  @include colorize($brandColor1);
}
.square {
  @include colorize($brandColor2);
}

对所述问题的良好解决方案。这在生产中出现的地方更为复杂。比如想对任何颜色重复使用这些关键帧定义:我仍然看不出有什么问题。你只需要一个混音和另一个颜色参数。哇,太漂亮了,你可以重复使用盒子阴影层声明,我没想到。仍然不能为不同的颜色重复使用相同的关键帧定义,但我认为这是css限制,而不是sass限制。