body {
background: url(bg.jpg);
margin: 0;
}
#bg {
background-color: black;
margin: 0;
padding: 0;
height: 100vh;
opacity: 0.7;
}
#topbar {
background-color: gray;
height: 80px;
width: 100%;
}
个字符
我试着用alpha:1将opacity: 1
添加到topbar div和rgba中,结果是:出现了一个图像,黑色背景,不透明度为0.7,topbar也是不透明度为0.7。
我的目标是实现较暗的图像作为背景和纯色顶栏div。
3条答案
按热度按时间0wi1tuuw1#
@CoffeedUpHacker的答案是好的,但这里有一个替代方案,它有一些额外的好处。
在这里,我没有将
#topbar
嵌套在#bg
中;它们是兄弟。然后,我用background-image
而不是body
来样式化#bg
。这有以下好处:1.您可以使用
filter
来降低亮度,而不是部分透明的黑色覆盖(一个元素而不是两个)。1.您可以修复背景,它将在所有设备上工作(而在body元素上使用
background-attachment: fixed
目前在移动的设备上不受支持)。个字符
yyyllmsg2#
如果你坚持使用非透明的颜色值和HTML结构,还有第三种方法可以实现这种效果,而不需要修改body的background属性。
字符串
请注意,
#topbar
必须为position
设置一个值才能使z-index
工作,但除了relative
之外,其他值也可以工作。hgtggwj03#
#topbar
位于#bg
内部,因此调整#bg
的不透明度也会影响#topbar
。我会做的是忽略不透明度并将背景色更改为透明黑色。它看起来像这样:
字符串
这样,只有背景颜色是透明的,而不是整个元素。