如何为长单页网站制作 CSS 响应式背景图片

How to make a CSS responsive background img for a long one page website

我已经尝试了两天让背景 img 响应手机。这是一个长主页(大约 8000 像素)。整个页面的内容有一个 div 父级 "background_div"。我都试过了,大小覆盖或包含标签,img 变得过像素化,就像它会被放大一样,内容是响应式的,但背景 img 让我头疼。我需要它来识别设备宽度、缩小并保持固定而不是沿着 8000 像素长的页面拉伸。谁能告诉我这里出了什么问题?

#background_div {
 background-image: url('home.jpg');
 background-repeat: no-repeat;
 background-position: center;
 -webkit-background-size: cover;
 -moz-background-size: cover;
 -o-background-size: cover;
 background-size: cover;
 background-attachment: fixed;
}

/*It just won't scale to the divice width and height*/
<div id="background_div">

-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover;

将这些设置为 cover 将拉伸图像以适合容器,无论它有多大。这就是导致你伸展的原因。

将它们设置为自动,或者根本不设置它们,如果您希望图像保持其原始大小。

CSS2

如果您需要使图像变大,您必须在图像编辑器中编辑图像本身。

如果您使用 img 标签,您可以更改大小,但如果您需要图像作为某些其他内容的背景(并且它不会像您看起来那样重复自己),那将不会给您想要的结果想要)...

CSS3释放力量

这可以在 CSS3 中使用背景大小来完成。

所有现代浏览器都支持此功能,因此除非您需要支持旧浏览器,否则这就是实现方式。

支持的浏览器:

Mozilla Firefox 4.0+ (Gecko 2.0+)、Microsoft Internet Explorer 9.0+、Opera 10.0+、Safari 4.1+ (webkit 532) 和 Chrome 3.0+。

#background_div {
    /* width: will stretch to width / height of element */
    background-size: 100% 100%;
}