zoukankan      html  css  js  c++  java
  • 改变父元素的透明度,不影响子元素的透明度—css

    1、如果我们给父元素添加opacity:0.4后,子元素的red颜色也变成了0.4的透明度, 
    例子如下:

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title>透明度写法</title>
            <style type="text/css">
                *{
                    margin:0;
                    padding:0;
                }
                .wrap{
                    margin:200px auto;
                    200px;
                    height:200px;
                    background:black;
                    opacity:0.4;
                    position:relative;
                }
                .inner{
                    position:absolute;
                    100px;
                    height:100px;
                    background:red;
                    top:50%;
                    left:50%;
                    margin:-50px 0 0 -50px;
                } 
    
            </style>
        </head>
        <body>
            <div class="wrap">
                <div class="inner"></div>
            </div>
        </body>
    </html>

    结果: 
    这里写图片描述

    **解决方法: 
    父元素的透明度用rgba的方法 
    background:rgba(0,0,0,0.4);** 
    解决的后的代码:

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title>透明度写法</title>
            <style type="text/css">
                *{
                    margin:0;
                    padding:0;
                }
                .wrap{
                    margin:200px auto;
                    200px;
                    height:200px;
                    position:relative;
                    background:rgba(0,0,0,0.4);
                }
                .inner{
                    position:absolute;
                    100px;
                    height:100px;
                    background:red;
                    top:50%;
                    left:50%;
                    margin:-50px 0 0 -50px;
                } 
    
            </style>
        </head>
        <body>
            <div class="wrap">
                <div class="inner"></div>
            </div>
        </body>
    </html>

    结果: 
    这里写图片描述

    解决方案2:有兼容性问题;

    利用CSS中的opacity属性可以实现一些视觉效果,但是父元素设置透明属性会被子元素继承,这是不想见到的,于是通过一些设置解决这个问题。

    filter:alpha(opacity=50);
    -moz-opacity:0.5;
    -khtml-opacity: 0.5;
    opacity: 0.5;

    解决办法是利用CSS3中的rgba()进行设置,便不会被被子元素继承,同时为了兼容IE7、IE8等浏览器,需要将子元素的positon属性设置为relative,使其脱离流。

    position:relative;



  • 相关阅读:
    Netty3实现服务端和客户端
    Nio实现服务端
    python学习笔记8-邮件模块
    python学习笔记8-异常处理
    python学习笔记8--面向对象编程
    python番外篇--sql注入
    python学习笔记7-网络编程
    python学习笔记7-excel操作
    python学习笔记6--双色球需求实现
    python学习笔记6--操作redis
  • 原文地址:https://www.cnblogs.com/lst619247/p/8252610.html
Copyright © 2011-2022 走看看