• 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;}

     

  • 相关阅读:
    2014 非常好用的开源 Android 测试工具
    Android 开发最佳实践
    Java_综合案例DAO设计模式(重要)
    Java_Set接口
    Java_List
    Java_类集框架简介
    Java_对象序列化
    Java_打印流
    Java_IO编程
    Java_文件操作
  • 原文地址:https://www.cnblogs.com/dtdxrk/p/3836324.html
Copyright © 2020-2023  润新知