CSS Opacity继承问题

时间:2012-04-09 08:11:16

标签: html css opacity

  

可能重复:
  CSS Opacity Property

我正在图像上创建一个透明的图层,我遇到了问题。

当我在图层上写下任何文字时,它们也会获得相同的透明度。

我认为这是因为继承问题并且添加了'position:relative'来重置我的子div,但它根本不起作用。

我只想重置子div的不透明度(下面的#TXT)。

这是我的代码。

<!DOCTYPE html>
<html>
<header>
    <meta charset="UTF-8">
    <style type="text/css">
        *{margin: 0; padding:0; background-color: #555;}
        #wrapper {
            margin:0 auto; 
            background-color: white;
            width: 922px;
            height:349px;
            margin-top: 150px;
            -webkit-box-shadow: 0px 0px 7px 7px #333;
            -moz-box-shadow: 0px 0px 7px 7px #333;
            }   

        #ImgSection {
            width: 922px;
            height: 349px;
            background-color: white;
            position: absolute;
            background: url("brand-new-car.jpg") -50px -200px no-repeat;
            }

        #TxtSection {
            width: 322px;
            height: 349px;
            background-color: #222;
            opacity: .5;        
            float: right;
            -webkit-box-shadow: inset 3px 0px 3px 0px black;
            -moz-box-shadow: inset 3px 0px 3px 0px black;
            }

            #TXT{
            position: relative;
            font-size: 50px;
            opacity: 1;
            }

    </style>
    <script type="text/javascript">

    </script>
</header>
<body>
    <div id="wrapper">
        <div id="ImgSection"></div>
        <div id="TxtSection">
            <div id="TXT">dsdsad</div>
        </div>
    </div>
</body>
</html>

图片的大小brand-new-car.jpg是1024x768。

我想知道如何重置#TXT的不透明度。

请帮忙。

提前致谢。

3 个答案:

答案 0 :(得分:8)

您好我提到的属性可以增加和减少背景的不透明度,这不会影响文本颜色,简单的看到css基本上你必须使用背景alpa中的rgb颜色来实现不透明度。

背景:RGBA(146,146,146,0.1);

或查看示例: - http://jsfiddle.net/8LFLd/3/

答案 1 :(得分:4)

如果您希望以透明度进行图像处理,那么您将不得不破解方式,因为hsla或rgba仅适用于颜色。您必须修改HTML,取出文本包装,然后将其放在图像层上。这是唯一的出路。

在这里你可以找到Chris Coyier支持同样的黑客攻击。 http://css-tricks.com/non-transparent-elements-inside-transparent-elements/

答案 2 :(得分:2)

您无法重置不透明度。它由所有后代继承。

可是:

  • 你可以使用rbga / hsla / alpha-png背景和rgba / hsla颜色来表示文字和边框,以达到类似的效果(但需要做更多的工作)。