2014-02-10 76 views
0

我在使用漸變顯示按鈕時遇到問題。我的CSS似乎在FireFox和Chrome中很好,但IE似乎給出了問題。CSS - 漸變在IE中

CSS:

.btn { 
cursor: pointer; 
border: none; 
display: inline-block; 
margin: 0; 
line-height: 1;  
width: 100%; 
padding: 0.5em 0; 
text-align: center; 
-webkit-border-radius: 6px; 
-moz-border-radius: 6px; 
-ms-border-radius: 6px; 
-o-border-radius: 6px; 
border-radius: 6px; 
-webkit-box-shadow: 0 0 4px rgba(51, 51, 51, 0.125); 
-moz-box-shadow: 0 0 4px rgba(51, 51, 51, 0.125); 
box-shadow: 0 0 4px rgba(51, 51, 51, 0.125); 
width: 300px; 
} 


.btn--primary { 
border: 1px solid #3A6896; 
color: white; 
font-size: 1.2em; 
} 


.btn--primary { 
background: #09427c; 
background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #2597FE), color-stop(100%, #015CAE)); 
background-image: -webkit-linear-gradient(#2597FE, #015CAE); 
background-image: -moz-linear-gradient(#2597FE, #015CAE); 
background-image: -o-linear-gradient(#2597FE, #015CAE); 
background-image: linear-gradient(#2597FE, #015CAE); 
} 


.btn--primary:hover, .btn--primary:focus, .btn--primary[disabled] { 
background: #09427c; 
background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #0b5299), color-stop(100%, #07335f)); 
background-image: -webkit-linear-gradient(#0b5299, #07335f); 
background-image: -moz-linear-gradient(#0b5299, #07335f); 
background-image: -o-linear-gradient(#0b5299, #07335f); 
background-image: linear-gradient(#0b5299, #07335f); 
} 

這裏是我的小提琴:http://jsfiddle.net/oampz/Wm67h/

任何幫助,將不勝感激。

感謝

UPDATE:

創建一個新的小提琴:使用提到一臺發電機http://jsfiddle.net/oampz/Wm67h/6/,是FF精細,看起來即使在IE糟糕!

UPDATE

這小提琴:http://jsfiddle.net/Wm67h/7/是更好的在IE但是沒有圓角邊框/邊緣和懸停屬性不起作用。

+1

哪個版本的IE? –

+0

@Paulie_D說得對。 IE10及以上版本支持'CSS'漸變。 – KunJ

+0

@Paulie_D - 嗨,使用IE 7,8和9 –

回答

3

使用filter使其適用於IE。

例如,

.yourClass{ 
    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='xx', endColorstr='xx',GradientType=0); 
} 

更換'XX'與梯度值。

希望這會有所幫助。

+0

謝謝。這個小提琴:http://jsfiddle.net/Wm67h/7/在IE中更好(使用你的方法),但是沒有圓角/邊緣,懸停屬性似乎不起作用。 –

2

想想你的梯度編碼是錯誤的,試試這個:

background-image: -webkit-gradient(
    linear, 
    left top, 
    left bottom, 
    color-stop(0, #2599FE), 
    color-stop(0.8, #015DAE) 
); 
background-image: -o-linear-gradient(bottom, #2599FE 0%, #015DAE 80%); 
background-image: -moz-linear-gradient(bottom, #2599FE 0%, #015DAE 80%); 
background-image: -webkit-linear-gradient(bottom, #2599FE 0%, #015DAE 80%); 
background-image: -ms-linear-gradient(bottom, #2599FE 0%, #015DAE 80%); 
background-image: linear-gradient(to bottom, #2599FE 0%, #015DAE 80%); 

Fiddle

,如果你需要用漸變的幫助,我一直覺得this generator是非常有用的

+0

謝謝,在IE中打開那個小提琴 - does not工作,也就是說,按鈕是一個平面的顏色。 –

+0

@OamPsy它在ie 10中工作,但對早期瀏覽器使用回退(默認背景色) - 它是css3,並且不受早期瀏覽器支持 - http://caniuse.com/#search=gradient – Pete

+0

您可以嘗試使用這個[gradient generator](http://www.colorzilla.com/gradient-editor/),它使用'filter:'作爲Nathan的答案,並且爲ie9生成一個svg – Pete