显示通过图片的背景图象有透明背景

时间:2013-08-14 17:40:42

标签: css seo transparency opacity png-transparency

我正在尝试为网站创建横幅广告。出于搜索引擎优化的目的,我决定看看我是否可以在类型而不是导入的图像中创建横幅。我取得了很好的进展,但出于某种原因,我的背景图片通过覆盖在其上方的徽标显示出来。

我的背景图片(在css中设置)设置了不透明度,因为我不想要它的全部力量。在它上面我放置了一个透明背景但没有不透明度的徽标。

目标横幅位于:

http://arielbalter.com/cio/

我尝试的代码是:

http://jsfiddle.net/abalter/QzNpQ/

** * HTML * ****

<header>
    <div id="outer">
        <div id="background-image"></div>
        <div id="logo">
            <img id="house-logo" src="http://arielbalter.com/cio/img/CheckItOutHouseNoBackground.png" />
    </div>
        <div id="lines">
            <h1 id="line1">check it out!</h1>
            <h1 id="line2">Home Inspection</h1>
        </div>
    </div>
</header>

** CSS * ***

header {
    border: 3px double black;
    width: 100%;
    height: 7em;
}
#outer {
    background-size: 100% 100%;
    height: 100%;
    position: relative;
}
#background-image {
    background-image: url("http://arielbalter.com/cio/img/3tab_slanted.jpg");
    position: absolute;
    left: 0;
    top: 0;
    height: 100%;
    width: 100%;
    opacity: 0.3;
}
#logo {
    float: left;
    border: 1px dashed green;
    height: 100%;
}
#logo img {
    height: 100%;
}
#lines {
    display: inline-block;
    border: 2px dotted blue;
    top: 0;
    bottom: 0;
}
#line1 {
    display: block;
    position: relative;
    font-family:"KGLoveSomebody", "Comic Sans MS", sans-serif;
    font-weight: bold;
    font-size: 3em;
    color: FireBrick;
    padding: 0.1em 0 0 0;
    margin: 0 0 -0.4em 0;
    border: 2px dashed green;
    letter-spacing: 0.05em;
}
#line2 {
    display: block;
    position: relative;
    font-family:"Trebuchet", sans-serif;
    font-size: 2em;
    color: black;
    font-weight: bold;
    padding: 0 0 0 0;
    margin: 0 0 0 0;
    border: 2px dashed orange;
    font-variant: small-caps;
}

谢谢!

1 个答案:

答案 0 :(得分:3)

<强>诊断:

根据我的理解,基于您的CSS,#background-image上的不透明度会影响#logo的不透明度。

解决方案1:

如果可能,请考虑使用background-color: rgba(x,y,z,a)父元素的背景颜色而不是照片,其中数字a负责不透明度。

解决方案2:

如果你想在彼此顶部使用两个图像,只有父元素具有不透明度,position absolute将帮助你在没有任何不透明度问题的单独div中显示它们。