2013-05-29 71 views
-2

我曾引用很多網站將線性漸變應用到ie-9,有些鏈接說不支持以及一些鏈接說它會工作。任何機構都清楚我們是否可以使用線性漸變還是不行?IE-9瀏覽器是否支持線性漸變

這是我的代碼:

.top_block 
{ 
     position: fixed; 
    display: block; 
    height: 150px; 
    width: 105px; 
    z-index: 9999; 
    background: -webkit-gradient(linear, left top, left bottom, from(#E9E9E9), to(#D3D3D3)); 
    background: -moz-linear-gradient(top, #E9E9E9, #D3D3D3); 
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#E9E9E9', endColorstr='#D3D3D3',GradientType=0); 
    margin-left:72px; 
    left: 36%; 
    top: 32%; 
    border: 6px solid white; 
    border-radius: 10px 10px; 
    -moz-border-radius: 10px 10px; 
    -webkit-border-radius: 10px 10px; 
    padding: 15px; 
} 

我申請這個在IE 9不能工作以及工作工作在Firefox和鉻的罰款。

+0

[Internet Explorer 9中的漸變](http://stackoverflow.com/q/3934693/1693859) –

+1

您可以隨時嘗試一下,自己去看看... – eidsonator

回答

4

不,IE9不支持標準的CSS漸變。這只是在IE10中引入的。然而,IE9確實支持舊IE特有的-ms-filter樣式,就像舊IE版本一樣,所以您可以使用它在IE9中生成漸變。

-ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorStr='#222222', EndColorStr='#AAAAAA')"; 

不過要注意的是,這些filter梯度(事實上IE的filter款式一般)有許多錯誤和怪癖,其中一些可以使它們難以處理是很重要的。

例如,它們與CSS border-radius不兼容。如果在同一元素上使用濾鏡漸變和border-radius,則漸變背景將顯示在圓角的頂部,並將隱藏它們。

使用濾波器漸變無法解決此問題。

因此,如果您需要在IE9的相同元素上使用漸變背景和圓角,最好的解決方案是使用填充腳本,如CSS3Pie,它在IE9中實現標準CSS漸變,並以某種方式與border-radius兼容。

這不是使用filter樣式時遇到的唯一問題,所以我的選擇是避免在可能的情況下使用它們。像CSS3Pie這樣的Polyfill腳本通常使事情變得更加容易,並且通常會很好地解決或避免fiter樣式中的錯誤。

希望有所幫助。

+0

RE:過濾漸變,那裏_are_ [圍繞它的方式](http://msdn.microsoft.com/en-us/library/ie/jj819731(v = vs.85).aspx),但同意最好避免它們在一起。 – gitsitgo