2011-03-22 65 views
0

我在列表元素(li)上使用了DD roundies,该列表元素也具有应用于渐变的过滤器,并且圆角不会出现,但是如果我删除渐变,拐角出现。有什么我可以做的,以解决这个问题,或者这是一个已知的限制与roundies?DD Roundes在IE中不能工作,当元素具有渐变过滤器

#hero-tabs li { 
    display:block; 
    float:left; 
    width:279px; 
    /*height:100px;*/ 
    font-size:11px; 
    line-height: 1.3; 
    color:#fff; 
    border-left:1px solid #ccc; 
    cursor:pointer; 
    background-color:#555; 

    filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr=#222222, endColorstr=#666666); 
    -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr='#222222', endColorstr='#666666')"; 
    background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#666), to(#222)); 
    background-image: -moz-linear-gradient(100% 100% 90deg, #666, #222); 
} 

DD_roundies.addRule('#hero-tabs .first-tab', '0 0 0 5px'); 

感谢

回答

0

我也ound这一点,似乎没有工作,目前各地。你可以拥有一个或另一个,而不是两个。

IE将渐变过滤器应用于原始元素,因此dd_roundies中的舍入元素不会覆盖它。

0

这不是对roundies的限制,它是对filter渐变的限制。事实证明,filter渐变在标准的border-radius拐角处也会导致IE9出现类似的问题。

没有简单的解决方法;最好的解决方案就是不要在旧版本的IE中使用那些filter渐变;所以IE8和更早版本只是一个后退纯色背景。

IE9确实有一个解决方法,因为它可以使用具有梯度的SVG图像作为嵌入在CSS中作为数据URL的背景。这有点笨重,但确实有效。虽然IE8没有这个选项。

如果您必须在IE8中使用渐变,您几乎必须坚持使用filter样式,并接受这些错误。

虽然有另一个选项 - CSS3Pie。这是一个类似于DD_Roundies的小JS库,它增加了对旧IE版本的border-radius支持。但除此之外,它也可以进行渐变。因此,我的建议是使用CSS3Pie而不是DD_Roundies,它会一次处理这两个问题。

希望有所帮助。