一、先来代码
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style type="text/css">
*{
margin: 0;
padding: 0;
}
html,body{
height: 100%;
width: 100%;
}
.test{
height: 100%;
width: 100%;
background: #EE6AA7;
}
</style>
</head>
<body>
<div class="test"></div>
</body>
</html>
二、原因在这里
1、如果要以百分比设置元素(div)的尺寸,必要以父元素的尺寸作为参考,如果父元素没有设置尺寸,那么子元素(div)尺寸自然不会生效。
2、所以如果设置div的高度为100%,那么他的参考元素就是是body,那么如何设置body的尺寸呢?
3、在怪异模式下,body可以作为根元素,设置它的高度为100%的时候(不考虑外边距),body的高度取是浏览器的高度。
4、在标准模式下,html元素才是根节点,div的父元素是body,body的父元素是html,然后html设置为100%,取得是浏览器的高度,body高度设置为100%,得到的是html的的高度,所以最好同时设置html,body{height: 100%;width: 100%;}。
5、因为默认body的margin:8px,所以如果div想占据全屏,需要设置*{margin: 0;padding: 0;}
三、简述名词
标准模式是指,浏览器按W3C标准解析执行代码。
怪异模式则是使用浏览器自己的方式解析执行代码(在网页的最顶端没有<!DOCTYPE html>),因为不同浏览器解析执行的方式不一样,所以我们称之为怪异模式。
四、后言
前端小白一枚,如果有错误的地方还请告知,谢谢。