CSS3背景不透明度与背景图像

时间:2011-09-05 22:26:38

标签: css3 background-image opacity

我试图对应用了背景图像的div进行不透明效果,并且仍然保持文字“不透明”。 我的标记:

<div id="projects" class="feature">
    Projects
</div>

我的CSS:

.feature {
    display: inline-block;
    margin: 30px;
    cursor: pointer;
    width: 300px;
    height: 300px;
    -webkit-border-radius: 150px;
    -moz-border-radius: 150px;
    border-radius: 150px;
    font-family: 'Droid Sans', Helvetica Neue, sans-serif;
    font-size: 2em;
    color: #fff;
    text-align: center;
    line-height: 1.2em;
}

.feature:after {
    /* Fallback for web browsers that don't support RGBa */
    background-color: rgb(0, 0, 0);
    /* RGBa with 0.6 opacity */
    background-color: rgba(0, 0, 0, 0.8);
    /* For IE 8*/
    -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#99000000, endColorstr=#99000000)";
}

.feature#projects {
    background-image: url('img/hero.png');
}

我想过使用伪元素,但无济于事!

有什么想法吗?

2 个答案:

答案 0 :(得分:3)

我可能会对背景图片使用半透明png,然后相应地设置文本样式。

您可能还想查看RGBa:

http://robertnyman.com/2010/01/11/css-background-transparency-without-affecting-child-elements-through-rgba-and-filters/

这适用于背景色,虽然它也适用于您的图像(但未经测试)

答案 1 :(得分:1)

有一种破解方法,你将div放在另一个包含文本的div下面的背景中。

查看以下链接:

http://www.sumobaby.net/news/2011/03/04/change-background-opacity-without-affecting-text/

这里还有一个快速工作的例子:

http://jsfiddle.net/7pVGM/

注意:标记和css并不是那么好,我只是在5分钟内编写它:)