我知道这可以很容易地在任何图像编辑程序中完成,我只是好奇,如果有一种方法只是使用CSS.
例:
body {background-color: #837960; background-image: url("Images/background.jpg") background-repeat: no-repeat;}
Run Code Online (Sandbox Code Playgroud)
您可以使用css将背景图像淡入背景颜色,这样就不存在可见线条,或者我应该在Photoshop中为透明度添加渐变吗?
Lem*_*urr 11
有可能 - 在CSS3中,您可以为背景设置多个值
body {
background: #837960 url("https://i.stack.imgur.com/MUsp6.jpg") 0 0 no-repeat;
background: -moz-linear-gradient(top, rgba(255,255,255,0) 0%, rgba(130,91,0,1) 100%); /* FF3.6+ */
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(255,255,255,0)), color-stop(100%,rgba(130,91,0,1))); /* Chrome,Safari4+ */
background: -webkit-linear-gradient(top, rgba(255,255,255,0) 0%,rgba(130,91,0,1) 100%); /* Chrome10+,Safari5.1+ */
background: -o-linear-gradient(top, rgba(255,255,255,0) 0%,rgba(130,91,0,1) 100%); /* Opera 11.10+ */
background: -ms-linear-gradient(top, rgba(255,255,255,0) 0%,rgba(130,91,0,1) 100%); /* IE10+ */
background: linear-gradient(to bottom, rgba(255,255,255,0) 0%,rgba(130,91,0,1) 100%); /* W3C */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#00ffffff', endColorstr='#825b00',GradientType=0 ); /* IE6-9 */
}
Run Code Online (Sandbox Code Playgroud)
但是,它仅适用于支持CSS3的现代浏览器
(通过http://www.colorzilla.com/gradient-editor/生成的代码)
Jos*_*das 10
是的,CSS 可以使用linear-gradient()
具有多个背景图像的函数:
body {
background-color: #837960;
background-image: linear-gradient(
to bottom, transparent, #837960
), url("Images/background.jpg");
background-repeat: no-repeat;
}
Run Code Online (Sandbox Code Playgroud)
将渐变指定为第一个图像,以便它堆叠在顶部,并使用它从顶部淡入底部transparent
不透明。background-color
这将产生下面的图像淡入背景的错觉,而不需要图像本身的 Alpha 透明度。