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

     

  • 相关阅读:
    Git-Runoob:Git 查看提交历史
    Git-Runoob:Git 分支管理
    Git-Runoob:Git 基本操作
    Git-Runoob:Git 创建仓库
    weblogic11g 安装集群 —— win2003 系统、单台主机
    关于条件宏的易错点
    关于端口号你知道多少!
    POJ 2114 Boatherds【Tree,点分治】
    Android应用开发学习笔记之Intent
    对于接收到的GPS信息详解
  • 原文地址:https://www.cnblogs.com/dtdxrk/p/3836324.html
Copyright © 2011-2022 走看看