错误做法
想要令body里一个块元素(div)占全屏,相信很多人(包括我)都会直接把body设置宽高100%,但实际却是,行不通
body{ width:100%; height:100%;}
复制
原因:
因为body跟div一样是块元素,直接赋值给块元素height:100%,相当于就是默认值的独占一行。
所以这里写body{ width:100%; height:100%;},其实是毫无作用的。
《css权威指南》指出,如果没有显示声明包含块的height,百分数高度会重置为auto,所以上面div1height设置为任何值都跟设置没设置一样。
第一种方式
给div设置{position: absolute; top: 0px; bottom: 0px;}
<style class="text/css"> body{ padding: 0px; margin: 0px; } .box{ background-color: yellow; width: 100%; height: 100%; position: absolute; top: 0px; bottom: 0px; } </style> <body> <div class="bg"></div> </body>
复制
第二种方式
加上html,body{ width:100%; height:100%; }
<style class="text/css"> body{ padding: 0px; margin: 0px; } html,body{ width: 100%; height: 100%; } .box{ background-color: yellow; width: 100%; height: 100%; } </style> <body> <div class="bg"></div> </body>
复制
第三种方式(常用)
给该元素设置{min-width: 100%; min-height: 100%; position: absolute;}
优点:①简洁,②缩小浏览器,拉动滚动条也还是满屏背景
<style type="text/css"> body { padding: 0; margin: 0; } .bg { min-width: 100%; min-height: 100%; position: absolute; background: yellow; } </style> <body> <div class="bg"></div> </body>```
复制