我知道这可以在任何图像编辑程序中轻松完成,我只是好奇是否有一种仅使用 css 的方法。
例子:
body {background-color: #837960; background-image: url("Images/background.jpg") background-repeat: no-repeat;}
您可以使用 css 将背景图像淡化为背景颜色,因此不存在可见线,还是我应该继续在 Photoshop 中为透明度添加渐变?
我知道这可以在任何图像编辑程序中轻松完成,我只是好奇是否有一种仅使用 css 的方法。
例子:
body {background-color: #837960; background-image: url("Images/background.jpg") background-repeat: no-repeat;}
您可以使用 css 将背景图像淡化为背景颜色,因此不存在可见线,还是我应该继续在 Photoshop 中为透明度添加渐变?
有可能 - 在 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 */
}
但是,它只适用于支持 CSS3 的现代浏览器
是的,可以通过 CSS 使用linear-gradient()
具有多个背景图像的功能:
body {
background-color: #837960;
background-image: linear-gradient(
to bottom, transparent, #837960
), url("Images/background.jpg");
background-repeat: no-repeat;
}
将渐变指定为第一个图像,使其堆叠在顶部,并使用它从transparent
顶部淡入淡出background-color
到底部不透明。这将产生下面的图像淡入背景的错觉,而不需要图像本身的 alpha 透明度。
理想情况下,您应该只编辑图像,以便在浏览器中具有一致的外观。
虽然您可以有一个背景渐变,但它会出现在图像后面,因为背景图像被放置在背景颜色之上。为了使图像看起来像是淡出另一种颜色,您需要在主体顶部放置另一个标签,例如:
body { background: url('https://i.stack.imgur.com/MUsp6.jpg') }
div.content {
width: 100%;
height: 100%;
background: -moz-linear-gradient(top, rgba(255,255,255,0) 0%, rgba(255,255,255,1) 100%); /* FF3.6+ */
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(255,255,255,0)), color-stop(100%,rgba(255,255,255,1))); /* Chrome,Safari4+ */
background: -webkit-linear-gradient(top, rgba(255,255,255,0) 0%,rgba(255,255,255,1) 100%); /* Chrome10+,Safari5.1+ */
background: -o-linear-gradient(top, rgba(255,255,255,0) 0%,rgba(255,255,255,1) 100%); /* Opera 11.10+ */
background: -ms-linear-gradient(top, rgba(255,255,255,0) 0%,rgba(255,255,255,1) 100%); /* IE10+ */
background: linear-gradient(to bottom, rgba(255,255,255,0) 0%,rgba(255,255,255,1) 100%); /* W3C */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#00ffffff', endColorstr='#ffffff',GradientType=0 ); /* IE6-9 */
}
<body>
<div class="content">Example</div>
</body>
或者您想要的任何颜色/定位组合。一个很好的资源是http://www.colorzilla.com/gradient-editor/