2013-06-05 100 views
0

大家。
我開始學習如何使用SASS和Compass和whant以更好地向組織建議將此代碼段
SASS/Compass更好的組織

.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)); 
    } 

如何使用線性漸變不repeting,但只改變圖像的位置?

+0

我不知道這是可能的,但有可能保存值的變量,而使用他們「硬編碼」的像素值的? – kleinfreund

回答

1

你只需要調整第一個圖像的背景位置。

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

這是完美的作品)))謝謝。 –

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); 
    } 
} 
+0

感謝您的回覆,瞭解永恆。 –

+1

這在技術上仍然重複代碼。唯一的區別是*你*不是重複它的人,薩斯是。代碼重複仍然存在於生成的CSS中,完全沒有必要。 – cimmanon

相關問題