使用CSS显示渐变以及图像



基于我在这里找到的一个非常简单的例子:<dead link removed>

css应该同时显示透明的png和它后面的渐变。我想知道这个问题是否与css的构造有关。

body {
background-image:url('Clouds.png');
background-image: linear-gradient(bottom, #9B7698 24%, #4447AB 63%);
background-image: -o-linear-gradient(bottom, #9B7698 24%, #4447AB 63%);
background-image: -moz-linear-gradient(bottom, #9B7698 24%, #4447AB 63%);
background-image: -webkit-linear-gradient(bottom, #9B7698 24%, #4447AB 63%);
background-image: -ms-linear-gradient(bottom, #9B7698 24%, #4447AB 63%);
background-image: -webkit-gradient(
linear,
left bottom,
left top,
color-stop(0.24, #9B7698),
color-stop(0.63, #4447AB));}

如果我只有image:url,它可以很好地加载云。但除此之外,它只显示梯度而不显示图像。

我也很好奇,我是否可以在底部添加一个渐变为白色的渐变,这样当页面滚动时,它就会与静态云图像网格化,但我对渐变还不够熟悉。提前谢谢。

您需要编写单个background(-image)-声明,并通过, 分离单个组件(图像、梯度)

background: url('Clouds.png'), linear-gradient(bottom, #9B7698 24%, #4447AB 63%);

在您的情况下,第二个背景图像定义(渐变)将覆盖第一个背景图像(您的图像)
请记住,顺序很重要!您必须首先声明图像,这样它才会出现在渐变的顶部
您可以省略旧的webkit语法,不再需要它了。

还要注意,并非每个浏览器都支持多个背景图像!

在支持的浏览器中,可以使用多种背景:

background-image: -webkit-linear-gradient(bottom, #9B7698 24%, #4447AB 63%), url('Clouds.png');
background-image: -moz-linear-gradient(bottom, #9B7698 24%, #4447AB 63%), url('Clouds.png');
background-image: -o-linear-gradient(bottom, #9B7698 24%, #4447AB 63%), url('Clouds.png');
background-image: linear-gradient(bottom, #9B7698 24%, #4447AB 63%), url('Clouds.png');

这会将云图像放置在渐变上方。还要注意,我删除了旧的webkit语法和-ms-前缀,并更改了顺序。不需要-ms-前缀,因为没有一个稳定的IE版本只支持带前缀的渐变。

最新更新