zoukankan      html  css  js  c++  java
  • CSS控制元素背景透明度总结

    方法一:CSS3的background rgba

    filter:progid:DXImageTransform.Microsoft.gradient(enabled='true',startColorstr='#7F000000',endColorstr='#7F000000');background:rgba(0,0,0,0.5);

    常用的方法是rgba来实现背景透明度 兼容ie6 ie7 ie8的做法是用ie的滤镜实现

    有个小问题就是通过这种方法实现背景透明度的话在ie系列下如果元素需要绑定事件,鼠标移动到透明区域总是不能准确获取元素。

    方法二:opacity

    在实际案例中opacity我们通常用在改变元素的透明度,而不是背景透明度。

    opacity:0.5;filter: alpha(opacity=50);*zoom:1;

    IE4-IE7使用filter: alpha(opacity=50),但要同时使该元素拥有hasLayout;

    这种方法实现的话里面包含的元素也会被改变透明度。

    有幸看了一下163的代码发现有个方法可以让子元素100%透明度的办法,就是设置position: relative;

    <!DOCTYPE>
    <html>
    <head>
        <title>opacity</title>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <style>
            body{background-color: red;}
            .box{opacity:0.5;filter: alpha(opacity=50);*zoom:1;background-color: #000;width: 500px;height: 500px;text-align: center;line-height: 500px;font-size: 2em; color: #fff;}
            .box p{position: relative;}
        </style>
    </head>
    <body>
    <div class="box">
        <p>文字123文字123文字</p>
    </div>
    </body>
    </html>

    最终解决方法

    如果产品需求只是简单的改变背景透明度,方法一就足够了。

    但是如果还需要给有背景透明的的元素再绑定事件的话就要做一下调整了。

    支持CSS3的浏览器用rgba,ie就用filter: alpha(opacity=50),子元素设置position: relative;

    .box{background-color:#000;filter:alpha(opacity=50);background:rgba(0,0,0,0.5);}
    .box p{position:relative;}

     

  • 相关阅读:
    JSONP的学习(收集整理)
    10个必备的移动UI设计资源站(转)
    iscroll4框架解析[webapp开发](转)
    IE9中Media queries在iframe无效的解决方法
    mustache模板技术
    企业级的响应式设计(Responsive design at enterprise level)译
    在JSP中使用jQuery的冲突解决(收集整理)
    Java开发 Eclipse使用技巧(转)
    Front End中Javascript兼容问题收集(转)
    vector it->和*it
  • 原文地址:https://www.cnblogs.com/dtdxrk/p/3836324.html
Copyright © 2011-2022 走看看