2011-06-22 15 views
1

我想获得一个透明的PNG &渐变在IE中显示相同。现在,过滤器主宰了背景图像。如果我拿出过滤器,PNG会显示。理想情况下,我希望PNG位于渐变顶部。如何让IE Filter和CSS透明背景一起显示?

CSS:

.defaultSelection { 
    border: 1px solid #bbb; color: #222222; outline: 0 none; 
    background: url('/img/dropdown-arrow.png') right center no-repeat; 
    filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#e9e9e9', endColorstr='#ffffff') 
} 

HTML:

<li class="defaultSelection">Current Selection</li> 

回答

0

您是否尝试过使用上栗的梯度,然后在里内的元素上应用的形象呢?

<li class="defaultSelection">Current Selection<span class='bg'>&nbsp;</span></li> 

.defaultSelection { 
border: 1px solid #bbb; color: #222222; outline: 0 none; 
filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#e9e9e9', endColorstr='#ffffff') 
} 
.defaultSelection .bg{ 
    display:inline-block; 
    width: 10px; 
    height:10px; 
    background: transparent url('/img/dropdown-arrow.png') right center no-repeat; 
} 
+0

我知道这是一个选项,但我只想看看我是否可以不分层或不分层。如果我不能,那么我会尝试分层。称它好奇。 – Anna

0

这是不可能的,即作为过滤器梯度基本上是其他背景图片(它需要它的地方。)尝试扭转了在CSS选择器的顺序先过滤器和背景图片,你”很可能会看到图像。

最好的办法就是去分层,或者制作具有图像和透明度的PNG。

1

好消息:这可能与IE浏览器(尽管其他人说过)。但它确实需要一个名为CSS3Pie的小黑客。

CSS3Pie是IE的破解版,它允许使用普通CSS支持各种CSS3功能,而不是那些可怕的filter样式。

在这里看到其支持的功能:http://css3pie.com/documentation/supported-css3-features/

您会注意到,这包括指定与图像和渐变背景的能力:

如上链接的页面上所描述的,只需指定你的CSS与-pie-background除了正常的background风格外,还可以用馅饼behavior风格来运行馅饼脚本。

#myElement { 
    background: url(bg-image.png) no-repeat #CCC; /*non-CSS3 browsers will use this*/ 
    background: url(bg-image.png) no-repeat, -moz-linear-gradient(#CCC, #EEE); /*gecko*/ 
    background: url(bg-image.png) no-repeat, -webkit-gradient(linear, 0 0, 0 100%, from(#CCC) to(#EEE)); /*webkit*/ 
    background: url(bg-image.png) no-repeat, linear-gradient(#CCC, #EEE); /*future CSS3 browsers*/ 
    -pie-background: url(bg-image.png) no-repeat, linear-gradient(#CCC, #EEE); /*PIE*/ 
    behavior: url(PIE.htc); 
} 

在幕后,CSS3Pie创建VML元件,并与实际元件层之达到所希望的效果(VML是由IE6和支撑起来的矢量图形语言)。但是你不需要知道这一点,因为Pie会对开发者和用户完全透明。它确实存在一些bug和已知问题,但总的来说,它是一个非常好的工具,可以将旧版IE浏览器与某些现代浏览器进行奇偶校验。