在以前的认知里,设置了定位的元素,top和bottom这些属性的作用是位移用的.然而今天发现,居然还有设置高度的作用,真是坑啊.文档里没讲.
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<style>
.main{
width: 100%;
border: 1px solid red;
position: absolute;
top: 0;
bottom: 0;
right: 0;
left: 0;
}
</style>
<title></title>
</head>
<body>
<div class="main">
</div>
</body>
</html>
从上面的代码可以看到,body没有设置高度,div元素设置了定位,但是没有设置高度.但是从控制台可以看到,这个div是有高度的,而且他的高度是自动调整的.并且上,左,右三个方向的位移都是0;

001.png
那为什么不用设置height:100%来达到相同的目的呢?
.main{
width: 100%;
height: 100%;
border: 1px solid red;
position: absolute;
}

001.png
这样设置后,发现上,左,右都有几个像素的位移.这样不利于布局,肯定还是要用到top,bottom,left这些属性来设置.这样子,height属性设置就显得多余了.因为即使不设置height属性,只设置top,bottom,left就达到目的了.
真是坑啊,文档里为什么没写.