2014-11-14 164 views
0

我有一個div用於表示網站上的類別。該div被賦予與該類別的名稱相對應的類。CSS - 改變背景圖像而不影響線性漸變?

股利首先給出一個默認的背景,使用以下薩斯混入:

@mixin category-background($from, $to, $image) { 
    background: linear-gradient(top, $from, $to), url(#{$image}) no-repeat top center; 
    background-size: cover; 
} 

然後我打電話是這樣的:

div.header { 
    @include category-background(transparentize(#fff, $header-transparentize), transparentize(#fff, $header-transparentize), 'default.jpg'); 
} 

如果我有一個特定的背景,然後我打電話mixin再次與正確的圖像:

div.header.specfic-category { 
    @include category-background(transparentize(#fff, $header-transparentize), transparentize(#fff, $header-transparentize), 'specific-image.jpg'); 
} 

我擔心,編譯時,這可能會p導致很多重複的CSS。無論如何只是替換背景圖像而不影響漸變?

任何意見讚賞。

謝謝

回答

0

不,你不能單獨指定它們。

linear gradient用作圖像,所以您實際上爲元素指定了兩個背景圖像。當你指定多個背景圖像時,你必須一次性指定它們,你不能讓它們分開。

0

如果我認爲你試圖達到我的想法,或許你正在尋找的是::before::after的組合?

在這個例子中我增加梯度和改變png圖片(使用::before)至暗懸停:

button hover