2013-02-27 146 views
0
一个div的过滤器

是我见过吨的帖子在网上关于这个问题,但我似乎无法让我的不透明度在使用Internet Explorer 5+工作。设置不透明度/在IE5 +

var container_div = document.getElementById(id);  
var container_filter = 0; 
container_div.style.filter = container_filter; 

这可以在所有其他标准浏览器中工作。

var container_div = document.getElementById(id);  
var container_opacity = 0; 
container_div.style.opacity = container_opacity; 

回答

1

IE5? 严重 ???

总之,简单的答案是,IE的filter风格是很多比这更复杂,因为它有许多不同的效果交易。您需要设置整个过滤器字符串,而不仅仅是一个整数值。

的语法是相当复杂的,而且不是很容易在Javascript一起工作。结果可能会有点碰巧,它并不总是工作得很好,即使你做得对。

,而不是试图告诉你如何使filter工作,我会点你给第三方JavaScript库,可能使事情变得更容易:cssSandpaper

cssSandpaper是一个JS库,实现了几个现代CSS功能集成到旧版本的IE。

然后,您可以使用CSS来设置不透明度为IE这样的:

opacity: 0.3; 

...或JavaScript这样的:

cssSandpaper.setOpacity(container_div, 0.3); 

这两个例子是按照上的文档上面链接的页面。

注:我很怀疑这个库是否会IE5工作,但坦率地说,不要让这种担心你。如今大多数人甚至支持IE6被认为是浪费时间。

+0

我知道IE5比Windows XP的旧的,但我没有说IE5 +。我仍然在XP上! – pandoragami 2013-02-27 21:08:28

+1

为什么要在IE5中使用不透明度?如果您不得不对旧的浏览器进行编码,您应该坚持使用它所支持的功能。在所有浏览器中,没有理由让网站看起来相同,只是在所有最新的浏览器中,对于旧版本的回退没有任何坏处。 – 2013-02-27 21:14:47

+0

我想最终的问题是;为什么Internet Explorer吮吸如此糟糕?为什么他们不能实现大多数浏览器的标准? – pandoragami 2013-02-27 21:50:51