我只想改变背景图像的不透明度。不是像p的整个项目。 的CSS:
#home{
background-image: url('../img/main.jpg');
background-position: center;
background-size: cover;
background-repeat: no-repeat;
position: relative;
height:100%;
opacity: .8;
}
HTML:
<section id="home">
<p>hi</p>
<p>hi</p>
<p>hi</p>
<p>hi</p>
<p>hi</p>
</section>
答案 0 :(得分:1)
规则opacity
用于元素。不适用于background
。如果您需要这样做,您有两种选择:
div
伪造背景并在其上使用opacity
。opacity
较小。有很多黑客可用:
:after
并设置样式。答案 1 :(得分:0)
虽然没有任何方法可以直接改变背景不透明度,但是有一种黑客的方法。
div {
width: 200px;
height: 200px;
display: block;
position: relative;
}
div::after {
content: "";
background: url(image.jpg);
opacity: 0.5;
top: 0;
left: 0;
bottom: 0;
right: 0;
position: absolute;
z-index: -1;
}
答案 2 :(得分:0)
我认为CSS背景透明度没有任何属性。
您可以做的是创建一个填充空间的子元素,并将背景和透明度应用于该元素。
如果您想要纯CSS解决方案,可以使用带有空内容字段的:before伪选择器创建子元素。
答案 3 :(得分:0)
如果您只想更改背景图像的不透明度,可能更容易以较低的不透明度实际保存图像,以避免编写额外的标记。
然而,有一些讨厌的工作涉及使用绝对定位将“子”元素移到背景的顶部 - 这是一篇非常有用的文章here。