CSS代码:
body{
background-image:url(images/background.jpg);
background-repeat:no-repeat;
background-size: cover;
min-width: 1024px;
min-height: 600px;
height: 100vh;
}
上面这段代码设置了body的宽和高的最小值,并且用background-size: cover;设置了背景图片按原比例填充满整个body。而实际上body里面的内容已经超过了100vh,所以达到的效果就是,缩小浏览器窗口的时候背景图片会跟着缩小,直到窗口小于body的最小值之后背景图片就不会继续缩小了,body也是。
但由于背景图片不能动而且不重复,向下滑动滚动条以后,下面一片是白的。所以我加了一行代码background-attachment: fixed;让背景图片能够跟随窗口移动。
但是加了这行代码以后会发现,缩小窗口到小于min-width之后,body确实没有跟着继续缩小,而且出现了滚动条,但是背景图片却会一直缩小,根本停不下来?
这是怎么回事啊?
我原本的意思只是为了解决背景边上的白条bug,现在无论怎么放大窗口都不会出现白条了,但是却发现缩小窗口的时候,里面的内容也会跟着缩小,小到一定程度以后布局就全都乱了,所以设置了一个缩小的最小值。添加了上面的代码以后,确实缩小到最小值以后就不会继续变化了,但是背景图片却不行,还在继续变,看上去很不舒服。
这个怎么解决啊?
就是让背景图片按照原比例填充满屏幕,并且能随屏幕滚动。而用户缩小窗口以后,背景图片会跟着缩小,到最小值以后,就不再继续缩小了,相应的是出现滚动条。而背景能随屏幕移动,所以拖动滚动条以后背景图片也保持相对窗口不动,不管是横向拖动滚动条还是纵向拖动滚动条。
具体效果,就是做到和登录之后的百度首页一样的效果(只是背景图片,其它的东西就没必要了)。