Css IE梯度过滤器不';不响应单击事件

Css IE梯度过滤器不';不响应单击事件,css,internet-explorer,Css,Internet Explorer,我希望有一个透明的背景色,我使用渐变过滤器作为IE中RGBA的后备。代码如下: filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#bfffffff,endColorstr=#bfffffff); 我还想在用户单击背景时触发一个事件,但似乎在我设置过滤器后不会触发单击事件。没有过滤器一切正常 那么这是另一个IE bug吗?我该如何解决这个问题?这可能与IE漏洞有关,该漏洞使透明背景的链接不再可点击:我今天遇到了它。

我希望有一个透明的背景色,我使用渐变过滤器作为IE中RGBA的后备。代码如下:

filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#bfffffff,endColorstr=#bfffffff);
我还想在用户单击背景时触发一个事件,但似乎在我设置过滤器后不会触发单击事件。没有过滤器一切正常


那么这是另一个IE bug吗?我该如何解决这个问题?

这可能与IE漏洞有关,该漏洞使透明背景的链接不再可点击:我今天遇到了它。我有一个透明背景的链接,显示设置为块:链接的主要区域不可点击,但我在上面设置了一个10px的边框。IE似乎也有过滤器的问题

对这种bug进行了讨论和分析。第一个家伙的解决方案是在设置过滤器之前给元素一个假背景图像。第二个方法是给元素一个背景色,并将不透明度设置为1%,这将使它在IE中几乎不可见。希望你能用其中一个来绕过它。

这不是交易。 Internet explorer在元素上方的单独图层上创建过滤器,由于新的图形图层不是元素的一部分(您有单击事件),因此不会出现事件冒泡

最近我为IE制作了一个带有渐变过滤器的标签元素。只有文本可以点击。如果我从有梯度层和没有梯度层的一侧分析标签层,那么您就会理解问题

without gradient filter:

------------------
 text layer
------------------
 background layer
------------------


with gradient filter:

------------------
 text layer
------------------
 gradient layer
------------------
 background layer
------------------

顺便说一句,这就是为什么不能在渐变过滤器上设置边界半径的原因。试试看。创建一个元素,用边界半径设置样式,给它一个渐变过滤器,然后在IE9中运行。无论您如何尝试强制渐变保持在圆形边界内(例如溢出:隐藏),它永远不会遵守。它就像一个单独的元素,位于绝对位置,正好位于元素上方,覆盖在文本下方。

我希望您知道IE DX过滤器使用的是#aarrgggbb而不是#RRGGBBAA?是的。透明效果也很好。问题是,在我应用filterGood之后,无法触发click事件,我只是想确定您是否触发了。(当我第一次遇到它的时候,我就不知道了。)我想如果我对你问题的形式给予适当的注意,我会看到你在做什么。几天前我想到了完全相同的技术。。。你发现了一个有趣的问题,如果我使用它,它可能会节省我以后的时间!在我看来,过滤器不是一个好办法——显然你正在处理的是旧版本的IE(即将发布的IE 10),那么,为什么不在旧版本的IE中只使用背景图像呢