Body元素用于放置最终能呈现在浏览器中的内容,它以XHTML的标准结构进行搭建。Body元素定义在Head区域之下,包含一组起始和结束标签。
在Body中放置的是页面中所有的内容,如图片、文字、表格、表单、超链接等设置,同时它也有自己的属性,而它的样式可控制整个页面的显示方式。但是HTML 4.01不赞成使用Body元素内任何用于设置外观的属性,而且XHTML 1.0严格型DTD也不支持Body元素内任何用于设置外观的属性。
当浏览器对网页文档进行解析时,Body中的信息将被展示在窗口中,其中也包括浏览器滚动条外观及状态栏信息等,一张标准的页面显示效果如下:
标准与非标准模式:
Standard模式后,定义和解析将更加严格,所有定义必须从顶级标签Html开始。可以理解为传统非Standard模式定义Body的用法,Standard模式下都必须在Html上定义。
高度100%的意义:
认为Standard模式下定义容器高度100%无效,是错误的理论。如果需要Body内的容器有100%高度,必须先定义body高度100%。
Html与Body的默认值:
1. IE6.0环境下Html默认有两层Border的内嵌效果,火狐浏览器1.5的环境下默认是没有的,这是IE6.0中定义border:0前后效果:
2. IE6.0和FF1.5中的Body都有一定的margin值,具体多少有细微差别,这是默认在两种客户端效果:
3. IE6.0环境下Html默认就是100%高度,Body则不是;FF1.5环境下Html和Body高度默认都不是100%,需要自定义。一般情况下统一默认的方案:
html { height:100%; border:0;}
body { height:100%; margin:0;}
滚动条的设置:
可以这么认为,非Standard模式页面的默认滚动条是Body的,而Standard则是Html的。Standard模式下的Body默认就没有滚动条,只是Html下级的一个容器而已,这样定义会看的更清楚:
html { background:#ccc; height:100%; border:0; overflow:scroll;}
body { background:#f00; height:100%; margin:0; overflow:scroll;}
定位参照:
相同的道理,Standard模式下当使用position方法的时候,其定位参照肯定是Html,而不是非Standard模式的Body。根据这个特性很容易把层覆盖在Body上,具体参考CSS构建iframe效果。