一.  body,html与background-color

我们有时候可能需要给整个网页设置一个背景颜色,那么我们就会body,或html设置,如下代码:

css代码:

body {background: skyblue;}


,这里省略了一些标签,这只是证明body内无内容复制代码


我们都知道background-color默认下的作用范围是覆盖整个边框盒子的,而这里body高度明显为0,那么网页应该不会有天蓝色的背景吧,然并不是我们想的这样:

html5 body背景 html给body设置背景颜色_html初始状态没有背景

可能大家会好奇了,这怎么回事呢?

这里就引出了一个大家可能没听过的东西了==> 画布

不过这里的画布可不是HTML5中的那个canvas画布,它就是一块显示区域,记住它的特点:

画布的最小宽高等于视口的宽高(画布大小也可能会超过视口大小,如出现x,y滚动条)

当html标签没有设置背景颜色,而body设置了,那么相当于是给画布设置了背景颜色

若html设置了背景颜色,则该背景颜色作用于画布区域,而body设置的背景颜色正常显示,也就是html的背景颜色会覆盖画布区域,如下图:

html5 body背景 html给body设置背景颜色_html初始状态没有背景_02

所以说,若是我们想要给整个网页设置一个背景颜色,最好就是直接给html设置就好了。

一般情况下背景图片也是一样的,即将background-color换成background-image

二.  画布的背景图片

这里说的画布的背景图片的意思就是html标签没有设置背景图片,而body设置了

html标签设置了背景图片

画布的背景图有以下几个特点:当背景图片设置的宽度为百分比时,宽度大小相对于视口宽度,而不是画布区域的宽度

当背景图片设置的高度为百分比时,高度大小相对于html(网页)高度,而不是画布或body元素的高度,如下图:

html5 body背景 html给body设置背景颜色_背景图片_03

是不是觉得有点不可思议啊,还没完呢,请看下面:

背景图片的横向定位设置为百分比或预设值(center,left,right,top...), 相对于视口来定位

背景图片的纵向定位设置为百分比或预设值(center,left,right,top...), 相对于网页来定位

html5 body背景 html给body设置背景颜色_html初始状态没有背景_04