body{ text-align:left;}
.top{background:grey;margin:0 auto;height:100px;}
.main{background:red;overflow:hidden;height:500px;}
.left{ background:blue;width:200px;float:left;height:500px;}
.right{background:green;float:right;height:500px;width:70%;}
.foot{background:yellow;margin:0 auto;clear:both;}
.top{background:grey;margin:0 auto;height:100px;}
.main{background:red;overflow:hidden;height:500px;}
.left{ background:blue;width:200px;float:left;height:500px;}
.right{background:green;float:right;height:500px;width:70%;}
.foot{background:yellow;margin:0 auto;clear:both;}
body{ margin:0; padding:0; font-size:30px; color:#fff}
.top{background:gray;height:100px;}
.main{}
.left{background:blue;float:left;width:380px;border-right:10px solid red;height:500px;}
.right{background:green;float:right;width:512px;height:500px;}
.foot{background:pink;clear:both;}
.top{background:gray;height:100px;}
.main{}
.left{background:blue;float:left;width:380px;border-right:10px solid red;height:500px;}
.right{background:green;float:right;width:512px;height:500px;}
.foot{background:pink;clear:both;}
已采纳回答 / EmptySofa
如果不清除浮动,float的元素是脱离了文档流,那么这个元素原来在文档流里的位置不会被继续保留,就会被后来的元素所替代。这个例子中,float的元素的高度要比后来的元素即footer的高度要高,所以footer会被float的元素覆盖了,如果你把float的元素高度设置的比footer小一点,你就可以看到footer显出了部分绿色。 那么如果footer的样式中添加clear的作用是,保留原来float元素在文档流中的位置,这样footer元素就不会去替代float元素所在的位置了。
2015-08-25