阻止子元素繼承父元素的opacity


今天在做東西的時候用到了opacity,我發現子元素會繼承父元素的opacity。

我找了一下其他人的解決方案,發現了一個比較靠譜的:

既然子元素必定會繼承父元素的opacity,那么咱們就不讓他們存在父子關系。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-cn">
<head>
    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
    <title></title>
    <style type="text/css">
    body{
    background-color: #000;margin: 0;padding: 0;
}
    .noOpacity{
    width: 300px;
    height: 250px;
    background-color: #37a7d7;
    color: #fff;
}
/*上面的是背景對比,以下是方法*/
    .container {
    width: 300px;
    height: 250px;
    color: #fff;
    position:relative;
}
   .content {
    position:relative;
    z-index:5;
    width: 100%;
    height: 100%;
    overflow: hidden;
}
   .background {
    background-color: #37a7d7;
    position:absolute;
    top:0px;
    left:0px;
    width:100%;
    height:100%;
    z-index:1;
    /*兼容IE7、8 */
       -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";
    filter: alpha(opacity=50);
    opacity:.5;
}
    </style>
</head>
<body>
    <div class="noOpacity">我是用來作對比的</div>
    <div class="container">
        <div class="content">
            <p>我是class為content的DIV</p>
            <p>我的背景是class為background的背景</p>
            <p>通過相對定位和絕對定位,我把class為background的DIV移動到了我的位置。</p>
            <p>同時通過我的較大的z-index浮在了它的上面。 :)</p>
            <p style="text-align:right">——劉龍(liulo)</p>
        </div>
        <div class="background"></div>
    </div>
</body>
</html>

效果:

本文代碼及結果來自博主:iulo

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM