【问题标题】:Pointer events: none, filter, works in ie8 and anywhere, not ie9指针事件:无,过滤器,适用于 ie8 和任何地方,不适用于 ie9
【发布时间】:2011-06-28 13:39:31
【问题描述】:

As I have seen here,一个过滤器可以用来模拟跨浏览器的版本

pointer-events: none;

但是,这在 IE9 中不起作用,在 IE9 的“模拟 IE8”版本中也不起作用。但是,IE8 的本机安装可以很好地处理它。是否有任何解决方案使其适用于 IE9?

【问题讨论】:

    标签: css


    【解决方案1】:

    你是对的 - AlphaImageLoader 过滤器已从 IE9 中删除。 这样做是为了不与符合标准的方法发生冲突。在这种情况下,pointer-events: nonenow works in IE9

    如果您使用条件 cmets 来针对 IE 进行过滤器修复,请将它们更改为仅针对 IE8 及更低版本。尝试将<!--[if IE]> 更改为<!--[if lte IE 8]>

    编辑:此后我又遇到了这个问题,看来pointer-events: none 在 IE9 中不起作用(无论如何都不适用于 HTML 元素)。我认为这是可行的,但在重新测试时,这两种方法都不适用于 IE9 上的点击。也许我的 IE9 处于兼容模式。

    一点也不理想,但你可以通过<meta>标签开关强制IE9进入IE8模式:

     <!--[if ie 9]><meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8"><![endif]-->
    

    为错误信息道歉,我会继续调查。

    2012 年 9 月 24 日更新:

    非常有用的caniuse.com 有更多关于 HTML 的pointer-events 的信息。 IE10 的支持仍然未知,Opera 似乎也不支持此属性。我建议您暂时不要使用pointer-events,除非您专门针对 Webkit/Mozilla。

    【讨论】:

    • 这行得通吗?我似乎无法让它在 IE9 中运行。文档说了一些关于 SVG 的内容,但不清楚它是否适用于其他元素。我有 .wrapper{ pointer-events:none;} .wrapper *{pointer-events:all;} 并且所有样式都在开发人员工具栏中跟踪。
    【解决方案2】:

    pointer-events 仅适用于 webkit、mozilla 浏览器中的 html。

    然而,指针事件在 Internet Explorer 中适用于 svg 元素。

    有一个很好的modernizr插件https://github.com/ausi/Feature-detection-technique-for-pointer-events/blob/master/modernizr-pointerevents.min.js来测试指针事件的存在

    如果您使用指针事件只是在顶部添加某种纹理,则可以将 div 替换为 svg 元素

    if( !Modernizr.pointerevents )
    {
        $('#texture').replaceWith('<svg id="texture"/>');
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-22
      • 2011-08-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-11
      相关资源
      最近更新 更多