使用 CSS,您可以控制元素的背景。您可以设置一个 background-color
以填充它为纯色,一个 background-image
以填充它为(你猜对了)图像,或者甚至两者兼而有之。
body {
background-color: red;
background-image: url(pattern.png);
}
以下是一个示例,其中我使用 SVG 图像文件作为背景,直接嵌入到 CSS 中作为 数据 URL。
查看 CodePen 上 Chris Coyier (@chriscoyier) 的笔 背景颜色和图像组合。
这只是一个单一的图像,重复,但我们实际上可以设置 多个背景 图像,如果我们想要。我们通过用逗号分隔值来实现这一点。
body {
background-image:
url(image-one.jpg),
url(image-two.jpg);
}
如果我们保持这种状态,image-one.jpg
将重复并完全覆盖 image-two.jpg
。但是我们也可以用其他背景属性分别控制它们。
body {
background-image:
url(image-one.jpg),
url(image-two.jpg);
background-position:
top right, /* this positions the first image */
bottom left; /* this positions the second image */
background-repeat:
no-repeat; /* this applies to both images */
}
请查看 background-position
也 有逗号分隔的值吗?这些将分别应用于每个图像。然后,background-repeat
如何只有一个值?我们也可以用同样的方法使用两个值,但通过只使用一个值,它适用于两者。
以下是一个使用四个独立图像的示例,每个图像都在一个角落,稍微偏移。
查看 CodePen 上 Chris Coyier (@chriscoyier) 的笔 多个背景的示例。
太可惜了,你不能旋转或翻转背景图像,否则我们只需要使用一个。我们可以旋转和 翻转 整个元素(或 伪元素),因此,在这种情况下,我们可以使用一个图像!
查看 CodePen 上 Chris Coyier (@chriscoyier) 的笔 翻转图像,因此您可以只使用一个。
这里还有其他一些需要注意的事项。
- 多个背景的 堆叠顺序 是“第一个在顶部”。
- 渐变通过
background-image
应用,因此它们可以用作所有这些内容的一部分。例如,您可以设置一个透明渐变覆盖光栅图像。
查看 CodePen 上 Chris Coyier (@chriscoyier) 的笔 带有多个背景的色调图像。
很棒的内容!我已经订阅了!
有没有办法指定格式不支持时的备用图像?我想在 CSS 中使用 WebP 图像,并使用 JPG 作为备用。
https://stackoverflow.com/questions/37588017/fallback-background-image-if-default-doesnt-exist
可能需要一些 JS:https://css-tricks.org.cn/using-webp-images/#article-header-id-4 或者,使用像 Cloudinary 这样的图像 CDN,您可以在其中设置以确保它以单一 URL 方式提供它可以提供的最佳格式。
您好,Dusan Milko。您链接的 StackOverflow 问题没有回答我的问题。如果第一个图像的图像格式不受支持,我想使用一个备用。StackOverflow 问题谈论的是如果第一个图像不存在的备用。
感谢 Chris Coyier 回答我的问题。
感谢您,Chris!我从未想过这会是可能的,而且如此简单。感谢您的工作和教程,我真的很感谢您所做的一切。我从您的技巧和窍门中学到了很多。
您好,是否会有这些 CSS 基础知识的“集合”?我对基础知识很自信,但偶尔回顾一下总是一件好事。
这是一个好主意!我们至少应该以某种方式标记它们,以将它们组合在一起。
给背景图像添加渐变是一个好主意。感谢分享。
您好,如何实现多个背景并在间隔秒内自动更改?有什么技巧吗?
我可能会考虑使用一个滑块来实现类似的功能。正确的方法可能取决于更多上下文,但 CodePen 有很多示例可以参考:https://codepen.io/search/pens?q=image+slider&limit=all&type=type-pens
div#bg {background-image
url(image-one.jpg),
url(image-two.jpg);
background-attachment: fixed, fixed;
background-position: center, center;
background-repeat: no-repeat, no-repeat;
background-size: cover, cover;
min-height: 100%;}
我的意思是,如何使用 CSS3 在一定时间间隔内在图像一和图像二之间切换。
可以用内联样式来实现吗?