设置背景图片时,作用于body和div上有何区别

设置背景图片时,作用于body和div上有何区别
作用于body上时,浏览器缩放,放大图片会失真,缩小时会有多个背景图平铺展示
作用与div上时,浏览器缩放,放大图片不会失真,缩小也不会出现多个背景图

作用于body上时,背景图片会铺满整个浏览器窗口;而作用于div上时,只会铺满div的范围。

对。同时,div的背景图可以设置不平铺,更灵活;而body的背景图通常是固定的,整个网页的背景。因此,在需要多个不同的区域的背景图的情况下,使用div更好。

其实主要是因为body的大小会跟随着网页大小的改变而改变,而div不会。所以其实如果div足够大,也是会发生平铺的。你可以试一试将div的width和height都设置为100%,也会平铺的:

<body>
  <div style="width: 100%; height: 100%"></div>
</body>

当然,如果要禁用平铺,设置background-repeat为no-repeat就行了。

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^

1.当设置背景图片时,作用于body和div上的区别在于,body元素会将背景图片拉伸至整个页面,而div元素只会将背景图片拉伸至div元素的大小。

2.

为什么缩放的时候div的大小没有发生变化,而作用于body的大小改变了,所以body上图片平铺了

这是因为div元素的大小是固定的,而body元素的大小会随着浏览器窗口的大小而变化,因此当缩放的时候,div的大小不会发生变化,而body的大小会发生变化。