美文网首页
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颜色失效以及遮罩点击穿透的处理办法

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