SASS / Compass更好地组织

时间:2013-06-05 13:42:15

标签: css sass compass-sass

大家。
我开始学习如何使用SASS和指南针并想要更好地组织这段代码的建议

.main-link.first-item {
  @include background(image-url($bg-sprite) no-repeat -27px -39px,
                      linear-gradient(#4b4e58, #3f424a));

  &:hover {
    @include background(image-url($bg-sprite) no-repeat -27px -1px,
                        linear-gradient(#4b4e58, #3f424a));
  }

如何在不重复的情况下使用线性渐变,但只改变图像的位置?

2 个答案:

答案 0 :(得分:1)

您只需要调整第一张图片的背景位置。

&:hover {
    background-position: -27px -1px, 0 0;
}

答案 1 :(得分:0)

我同意@ cimmanon的回答。

虽然如果你想在不同样式表中的不同元素上反复使用相同的东西,我建议创建一个mixin并将其放入一个单独的sass文件中。您可以将其导入到您需要的文件中:

# mixin.css.scss
@mixin custom-background($bg-sprite, $position-vertical, $position-horizontal) {
  @include background(image-url($bg-sprite) no-repeat $position-vertical $position-horizontal,
                        linear-gradient(#4b4e58, #3f424a));
}

# some.css.scss
@import "mixin.css.scss"

.main-link.first-item {
    @include custom-background($bg-sprite, -27px, -39px);
  &:hover {
    @include custom-background($bg-sprite, -27px, -1px);
  }
}