1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style>

#main_center{
margin:8px 8px auto 8px;
height:auto;
background:#093;}
.main_center_left{
width:160px;
float:left;
background:#333;
height:400px;
margin-right:10px;}
.main_center_right{
width:783px;
float:right;
background:#906;
height:400px;}
.main_center_right_side{
width:200px;
float:right;
background:blue;
height:400px;}
.center_news{
width:573px;
margin-right:10px;
float:left;
height:400px;
background:#666;}
</style>
</head>

<body>
<div id="main_center">
<div class="main_center_left">160width</div>
<div class="main_center_right">
<div class="center_news">
</div>
<div class="main_center_right_side">200width</div>
</div>
</div>
</div>
</body>
</html>

此时height:auto;和height:400px;是无效的,div不会显示高度。这是浮动导致的

第一种方法,可以直接清除页面的浮动,代码量不多的时候很容易发现哪里没有清除浮动(亲们使用了浮动的时候一定要记得清除浮动哦,否则可能将会有很多类似的怪异问题出现!)。

第二种方法,跟第一种方法有异曲同工之处,height:auto;(height:400px;)可以换成zoom:1;overflow:hidden;
zoom:1会触发ie(ie8以下)的haslayout,刚好能清理浮动。
另外,height:400px;同zoom:1;一样会触发ie(ie8以下)的haslayout,但auto值却不会。