浮动清除问题。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>无标题文档</title> <style type="text/css"> *{margin:0;padding:0;} #wrap{ background:#FFF;/*白色*/ margin:0 auto; width:960px; } #header{background:#09F;width:100%;}/*淡蓝色*/ #mainbody{background:#00C;width:100%;overflow:hidden;}/*深蓝色*/ .left{ width:800px; height:200px; background:#000; float:left; } .right{ width:140px; height:500px; background:#9F0; float:right; } #footer{ background:#F0F; width:100%; }/*粉红色*/ </style> </head> <body> <div id="wrap"> <div id="header">头部</div> <div id="mainbody"> <div class="left"></div> <div class="right"></div> </div> <div id="footer">版权部分</div> <div> </body> </html>
如果我给mainbody设置一个固定高度,比如设置height=500px,这里显示就正常了,不会对后面的footer造成影响。否则就会出现如上问题,需要加overflow:hidden清除浮动。这是为什么呢?