[英]Background image showing through picture with transparent background
我正在尝试为网站创建横幅。 出于SEO的目的,我决定查看是否可以按类型而不是作为导入的图像来创建横幅。 我的进度不错,但由于某种原因,我的背景图像通过覆盖在其顶部的徽标显示。
我将背景图像(在CSS中设置)设置为不透明,因为我不希望它具有完整的强度。 在其上方放置徽标,该徽标具有透明背景,但不透明。
目标标语位于:
我正在尝试的代码在:
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;
}
谢谢!
诊断:
根据您对CSS的了解, #background-image
的不透明度正在影响#logo
的不透明度。
解决方案1:
如果有可能,请考虑使用背景色代替父元素,并使用background-color: rgba(x,y,z,a)
,其中数字a
表示不透明度,而不是照片。
解决方案2:
如果要在彼此顶部使用两个图像,而仅父元素具有不透明度,则position absolute
将帮助您在单独的div中显示它们,而不会出现任何不透明度问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.