2012-08-04 104 views
2

我有一個按鈕,我已經添加了漸變。CSS漸變到純背景

下面是代碼:

.mybutton { 
    background: #258dc8; /* Old browsers */ 
    background: -moz-linear-gradient(top, #258dc8 0%, #258dc8 100%); /* FF3.6+ */ 
    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#258dc8), color-stop(100%,#258dc8)); /* Chrome,Safari4+ */ 
    background: -webkit-linear-gradient(top, #258dc8 0%,#258dc8 100%); /* Chrome10+,Safari5.1+ */ 
    background: -o-linear-gradient(top, #258dc8 0%,#258dc8 100%); /* Opera 11.10+ */ 
    background: -ms-linear-gradient(top, #258dc8 0%,#258dc8 100%); /* IE10+ */ 
    background: linear-gradient(to bottom, #258dc8 0%,#258dc8 100%); /* W3C */ 
    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#258dc8', endColorstr='#258dc8',GradientType=0); /* IE6-9 */ 
} 

我的問題是,在懸停狀態我想擺脫漸變的,只是有一個簡單的背景顏色。

.mybutton:hover { 
    background-color: #333333; 
} 

由於某些原因,這不起作用,因爲它沒有擺脫漸變。 我能夠改變漸變的唯一方法是添加另一個漸變。

有沒有辦法可以禁用漸變?

我也試過background: none;但這沒有做到。

回答

2

漸變是image values,因此單獨設置background-color不會影響您的漸變。你會特別希望(當你在它以及filter)覆蓋background-image屬性:

.mybutton:hover { 
    background-color: #333333; 
    background-image: none; 
    filter: none; 
} 

如果使用速記background: none,你設置的顏色和圖片( none映射到background-image並省略顏色設置爲transparent),所以您將獲得透明背景。

當然,你可以使用簡寫聲明只是顏色,而是和圖像將隱含地none

.mybutton:hover { 
    background: #333333; 
    filter: none; 
}