轉自 http://www.divcss5.com/jiqiao/j612.shtml
今天遇到一個可能你在項目里也會經常遇到的問題如下圖,解決以后轉載過來自己做個記錄。
最外層的父級DIV不能自適應高度-不能隨對象撐開沒有高度
當在對象內的盒子使用了float后,導致對象本身不能被撐開自適應高度,這個是由於浮動產生原因。
如何解決父div對象自適應高度,方法有三種,接下來DIVCSS5逐一介紹。
1、首先我們先看HTML源代碼:
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>父div不自適應高度實例</title> <style> .divcss5{ width:500px; border:1px solid #000; padding:10px} .divcss5-lf{ float:left; width:220px; height:100px; background:#000} .divcss5-rt{ float:right; width:230px; height:100px; background:#06F} </style> </head> <body> <div class="divcss5"> <div class="divcss5-lf"></div> <div class="divcss5-rt"></div> </div> </body> </html>
2、問題效果截圖:
子對象使用float后,父div不能自適應高度實例截圖
方法一:對父級設置固定高度
此方法可用於能確定父級div內子級對象高度。
假如以上案例,我們知道內部div高度100px,那對父級設置css height為100px看看效果。
1、完整div+css實例html代碼(對父div加高度):
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>父div不自適應高度實例</title> <style> .divcss5{width:500px;border:1px solid #000;padding:10px; height:100px} .divcss5-lf{ float:left; width:220px; height:100px; background:#000} .divcss5-rt{ float:right; width:230px; height:100px; background:#06F} </style> </head> <body> <div class="divcss5"> <div class="divcss5-lf"></div> <div class="divcss5-rt"></div> </div> </body> </html>
2、加高度解決不能撐開子對象使用float效果截圖
對父加高度100px 解決外層父div自適應高度截圖
此方法缺點,父級是固定高度,而不隨內容高度自適應高度,沒高度。此方法針對能確定父div內的內容高度情況下使用。
方法二:使用css clear清除浮動
對父級div標簽閉合</div>前加一個clear清除浮動對象。
1、加clear效果完整div css代碼
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>父div不自適應高度實例</title> <style> .divcss5{width:500px;border:1px solid #000;padding:10px} .divcss5-lf{ float:left; width:220px; height:100px; background:#000} .divcss5-rt{ float:right; width:230px; height:100px; background:#06F} .clear{ clear:both} </style> </head> <body> <div class="divcss5"> <div class="divcss5-lf"></div> <div class="divcss5-rt"></div> <div class="clear"></div> </div> </body> </html>
2、加css clear解決父div不能自適應高度
使用clear:both清除父級內子對象產生浮動
此方法需要注意是clear:both加的位置,不是對父級直接加clear樣式,而是在父級</div>前加帶clear對象盒子。
方法三:對父級樣式加overflow樣式
此方法非常簡單,也可以作為推薦解決父級不能被撐開自適應高度的方法,可以不增加div盒子對象,只需要對父級加一個overflow:hidden樣式即可。
1、完整css div代碼
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>父div不自適應高度實例</title> <style> .divcss5{width:500px;border:1px solid #000;padding:10px; overflow:hidden } .divcss5-lf{ float:left; width:220px; height:100px; background:#000} .divcss5-rt{ float:right; width:230px; height:100px; background:#06F} </style> </head> <body> <div class="divcss5"> <div class="divcss5-lf"></div> <div class="divcss5-rt"></div> </div> </body> </html>
2、加css overflow方法截圖
父div加overflow樣式解決父自適應高度
推薦。此方法為非常簡單解決子用float,父div不能自適應高度,不能隨父內容多少而自適應高度沒有高度。