有不同的方法来解决这个问题。您发布的 CSS 代码基本上获取您的图像并拉伸它,使其覆盖<body>
您网站的整个元素(基本上是浏览器屏幕大小)。
放大后没有办法让小图像看起来很好。可以做的是存储不同大小的图像,并使用媒体查询根据屏幕大小加载特定图像。
假设您存储 3 种不同的尺寸:
image_large.jpg (2000 x 2000)
image_medium.jpg (1000 x 1000)
image_small.jpg (500 x 500)
然后,您可以使用 CSS 根据屏幕大小加载适当的 CSS:
@media screen and (min-width: 0px) and (max-width: 1000px) {
body {
background: url(../images/image_small.jpg) no-repeat center center fixed;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover;
}
}
@media screen and (min-width: 1001px) and (max-width: 2000px) {
body {
background: url(../images/image_medium.jpg) no-repeat center center fixed;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover;
}
}
@media screen and (min-width: 2001px) {
body {
background: url(../images/image_large.jpg) no-repeat center center fixed;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover;
}
}
这可以防止具有小屏幕的移动设备加载不必要的大图像。但是,就像我之前说的,如果您没有更高分辨率的源图像,那您就不走运了。