zoukankan      html  css  js  c++  java
  • PIE使用阴影后的背景透明方法

    使用PIE后,会发现如果有设置 box-shadow 时,当前 class 样式中设置 opacity 或者背景渐变透明都会无效了,其实也是有办法解决的

    css3-container { filter:alpha(opacity=80); }
    #header-wrapper { 
        height:35px;
        background: -webkit-gradient(linear,left top,left bottom,from(rgba(68,102,113,0.9)),to(rgba(46,74,83,0.9)));
        background: -moz-linear-gradient(top, rgba(68,102,113,0.9), rgba(46,74,83,0.9));
        filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#E6446671', endColorstr='#E62E4A53'); /* IE6,IE7 */
        -ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr='#E6446671', endColorstr='#E62E4A53')"; /* IE8 */
        box-shadow:0 1px 3px #000;
    }

    上面这个例子中使用背景渐变透明,但因为有 box-shadow 导致透明失效,这个时候需要添加个样式

    css3-container { filter:alpha(opacity=80); }

    就可以让 IE 实现阴影的同时也能背景透明了,不过这样写有个问题就是全部的PIE兼容都会透明,所以最好的办法是有两个:


    1. css 中指定某个具体节点下的 css3-container 透明

    这个方法很多时候不好控制,主要是老版本的 IE 的选择器不好控制

    2. 通过 jQuery 动态添加样式,建议这个方法

    只需要找到当前需要兼容的 div 然后找到他的上一个 css3-container 就可以了

    例:

    $('.curr').prev('css3-container').css('filter', 'alpha(opacity=80)');

    这样就可以了


    另说明:

    对浅色如白色之类的背景透明可能效果不是很好,因为PIE的阴影会生成一个全黑的 css3-container 即时使其透明,浅背景色可能显示效果不太好吧

  • 相关阅读:
    火焰图&perf命令
    C10K问题
    cocosStudio中使用PageView,ListView和ScrollView
    vim基本命令
    Git命令学习总结(-)
    可在 html5 游戏中使用的 js 工具库
    待飞日记(第十一篇)
    待飞日记(第十篇)
    待飞日记(第八天和第九天)
    高质量C++/C编程指南
  • 原文地址:https://www.cnblogs.com/zhouzme/p/5758525.html
Copyright © 2011-2022 走看看