美文网首页
IE 8 下rgba颜色失效以及遮罩点击穿透的处理办法

IE 8 下rgba颜色失效以及遮罩点击穿透的处理办法

作者: 吕师傅_ | 来源:发表于2017-09-18 18:08 被阅读0次
最近做了一个活动的弹层,需求如下:
弹层的背景颜色需要有透明度,点击非内容区域,需要关闭弹层。

其实这个需求难度并不高。背景色的css以及关闭弹层的点击事件都很好写。

贴一下背景的css代码:
  .window_shade_1{
      width: 100%;
      background: rgba(0,0,0,0.3);
      position: fixed;
      top:0;
      right:0;
      bottom:0;
      left:0; 
      display: none;
      z-index:999;
      }

这个代码在IE8以上的浏览器中是可以正常展示的,点击弹层的非内容部分也可以关闭弹层。

但是!!!

有个浏览器叫做IE8

在IE8下,弹层出现了两个问题:
1.弹层的背景色不显示了。(这个可以理解,毕竟我自己给自己挖了坑,用了rgba)
2.没有办法点击到弹层的非内容处了,弹层的背景就想被鼠标穿透了一样。鼠标点击的时候,自动点到了弹层下面的部分了。

不知道大家在写弹层的时候,是否也遇到过类似的问题。

第一个问题,是因为IE8不兼容rgba渲染颜色,可以直接用IE8的兼容性写法来解决。

第二个问题,是因为我们的背景没有用图片来渲染,IE8下认为我们没有背景,点击的时候就点到了弹层的下一层。

解决问题的办法,在IE8下,将rgba换成可以兼容IE8的写法,并且引用一个空白作为我们的背景图。

修改后的代码如下:

    <!--[if IE 8]>
      <style>
         .window_shade_1{
            width: 100%;
            position: fixed;
            top:0;
            left:0; 
            right:0;
            bottom:0;
            display: none;
            z-index:999;
            filter: progid:DXImageTransform.Microsoft.gradient(startcolorstr=#7F000000,endcolorstr=#7F000000);
            background:  url(about:blank);
            }
      </style>
    <![endif]-->

这样的话,没有改变原来的css内容,只是在IE8下加了这段css,相当于当浏览器为IE8的时候。重新写了这个元素的css。

但是需要注意的是:

        <!--[if IE 8]> <![endif]-->

这个标签,相当于在IE8下给html中增加了一部分代码。如果需要写css,就要加上<style></style>标签,如果需要增加js,需要加上<script></script>标签。

其实这里解决这个问题主要是增加了两部分代码:

         filter: progid:DXImageTransform.Microsoft.gradient(startcolorstr=#7F000000,endcolorstr=#7F000000);
         background:  url(about:blank);
background: url(about:blank);

这种写法也可以用在轮播图的分页器上,在IE8下,点击分页器很有可能会点到轮播图片上,加上它就好啦~

ok~结束, 这就是我解决这个问题的办法。如果有人有更好的办法也可以来交流一下呀~ 希望能学到更好的写法。
把自己遇到的bug写下来能,能帮到其他人更好,帮不到的话,就当给自己警示了~避免以后再犯同样的错误。

仅供参考,不喜勿喷,转载不用注明出处,给钱就行(说的好像有人真要转一样 =_=)

相关文章

  • IE 8 下rgba颜色失效以及遮罩点击穿透的处理办法

    最近做了一个活动的弹层,需求如下: 弹层的背景颜色需要有透明度,点击非内容区域,需要关闭弹层。 其实这个需求难度并...

  • CSS3之HSL

    一、颜色表示法介绍 表示颜色除了十六进制、RGBA,还是HSL(HSLA),其中RGBA及HSA IE9及以上才支...

  • 很基础的js(es6)啊~

    数组转成字符串 join(',') 处理ie问题要做的兼容 场景:上传组件在ie的时候 会有点击穿透的效果。 做...

  • 父容器需要透明,子容器不要透明

    文章转载地址: css实现遮罩层,父div透明,子div不透明 解决的办法 使用RGBA

  • 遮罩以及滚动穿透

    源码速览 全屏源码 遮罩toast在以上代码基础上,将遮罩容器的宽高缩小即可。 考虑因素 全屏 垂直居中内部元素已...

  • ie8、ie9 输入框兼容问题

    输入框背景颜色透明 点击输入会失灵导致失灵的原因是ie8、ie9下会把background:none;编译成bac...

  • 兼容IE总结

    兼容IE的问题 1、更改input、textarea的提示语颜色 解决办法 2、文件下载处理兼容IE 3、get请...

  • Android 相机遮罩CameraMask

    开篇   相机遮罩。 支持修改遮罩颜色以及透明度 支持修改相机镜头 支持设置提示文字以及位置、字体、颜色 可获取相...

  • IE8下事件穿透

    今天遇到一个棘手的问题,有个loading的小组件在处理js时,发现在IE8下不能够查找到dom。如下面的...

  • SVG滤镜:feColorMatrix

    颜色滤镜就是用来对原图的每个像素点的RGBA颜色进行处理生产新的RGBA颜色.元素通常有两个属性:type和val...

网友评论

      本文标题:IE 8 下rgba颜色失效以及遮罩点击穿透的处理办法

      本文链接:https://www.haomeiwen.com/subject/psvbsxtx.html