css 多种背景和颜色不透明度

mbskvtky  于 2024-01-09  发布在  其他
关注(0)|答案(2)|浏览(86)

我想弄明白一些事情。
我有一个简单的网页,有一个重复的图案背景,我想在css中做的是使用多个背景创建一个颜色覆盖。

html,body {
background: 
rgba(200, 54, 54, 0.5),
url(../img/background.png) repeat;
}

字符串
然而,它没有显示任何东西,只是一个白色屏幕,如果我切换背景位置,并把图像放在上面,那么我可以看到它确实找到了图像,并显示,但显然没有颜色覆盖。
我错过了什么,我认为这应该是工作?它不工作的html,身体标签?
任何帮助都非常感谢。谢谢尼克

jtoj6r0c

jtoj6r0c1#

rgba()是一个颜色值。您只能在最后一个背景图层中使用颜色值;在任何其他图层上指定颜色会使语法无效。1
如果你需要用一个透明的颜色覆盖背景图像,唯一的解决方法是创建一个该颜色的图像并覆盖它。但是因为你试图应用一个页面背景,你应该能够简单地将颜色覆盖应用到body,将图像应用到html

html {
    height: 100%;
    background: url(../img/background.png) repeat;
}

body {
    min-height: 100%;
    background: rgba(200, 54, 54, 0.5);
}

字符串
请记住,body也需要覆盖html的整个区域,否则您的颜色将仅覆盖背景图像的一部分。上面的heightmin-height样式对高度强制执行此操作;对于宽度,您需要确保body没有任何侧边距或宽度小于100%。
有关htmlbody背景的两种方法的更广泛的文章,请参阅此答案。
1这是可以理解的令人困惑的,为什么颜色被禁止从任何层,除了底部的一个考虑到颜色值与阿尔法通道存在,你仍然可以解决它与一个 * 图像 * 与相同的阿尔法通道和浏览器仍然必须合成的背景无论如何。但这就是它是如何,我想是的。看起来这个限制也不会在第4级的背景中被解决,所以我知道什么。

aiqt4smr

aiqt4smr2#

你可以使用梯度技巧:

html,body {
background: 
linear-gradient(90deg, rgba(200, 54, 54, 0.5) 0%, rgba(200, 54, 54, 0.5) 100%), url(../img/background.png) repeat;
}

字符串
将所需的颜色设置为两个渐变值

相关问题