2013-05-29 70 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