DIV嵌套時(shí)外層無(wú)法自適應(yīng)高度三種解決方案
這里向大家描述一下解決DIV嵌套時(shí)外層(父層)無(wú)法自適應(yīng)高度的方法,原本自己寫(xiě)的CSS代碼是沒(méi)有錯(cuò)誤的,但是為什么在新版的瀏覽器中會(huì)發(fā)現(xiàn)使用DIV嵌套時(shí)外層(父層)無(wú)法自適應(yīng)高度的錯(cuò)誤,這里看一下解決方案。
如何解決DIV嵌套時(shí)外層(父層)無(wú)法自適應(yīng)高度?
相信很多朋友在使用CSS+DIV過(guò)程中都會(huì)遇到這個(gè)問(wèn)題,特別是目前的瀏覽器版本越來(lái)越多,更新的也非??欤瑢?duì)CSS的支持和要求越來(lái)越高,如IE8、IE9、FF、chrome等等瀏覽器,雖然對(duì)CSS支持***,但是也有些錯(cuò)誤,導(dǎo)致DIV+CSS的排版出現(xiàn)驗(yàn)證問(wèn)題。
原本自己寫(xiě)的CSS代碼是沒(méi)有錯(cuò)誤的,但是為什么在新版的瀏覽器中會(huì)發(fā)現(xiàn)使用DIV嵌套時(shí)外層(父層)無(wú)法自適應(yīng)高度的錯(cuò)誤,***所寫(xiě)的代碼在IE6上能***的展示出來(lái),但是在IE8、FF上卻出現(xiàn)不適應(yīng)高度的問(wèn)題,難道是CSS不兼容瀏覽器?下面就來(lái)說(shuō)說(shuō)其解決方法。
假如***的CSS代碼已經(jīng)通過(guò)了W3C的驗(yàn)證,那就說(shuō)明,我們寫(xiě)的代碼完全是沒(méi)有錯(cuò)誤的,那么是說(shuō)明原因呢?這個(gè)原因我也說(shuō)不清楚,在網(wǎng)上查了好久,我也沒(méi)有查到原因,但是查到了相關(guān)的解決辦法,網(wǎng)上的解決辦法有3種,但是我覺(jué)得不***,下面列出網(wǎng)上的我查找到的解決方法。
1、在外層的CSS代碼中加入display:table
2、第二種解決方法是定義一個(gè)CSS類(lèi):
- .box:after{
- content:".";
- display:block;
- height:0px;
- clear:both;
- visibility:hidden;
- }
然后將父層DIV代碼中的<divid="main">改為<divid="main"class="box">。
3、在外層(父層)CSS代碼中加入overflow:auto;
在我使用了上面3種方法后,我覺(jué)得只有第3種方法有效,但是其效果不是很好,但是不會(huì)出現(xiàn)異常,不過(guò)為了更***的解決這個(gè)問(wèn)題,我介紹一個(gè)很有效的方法給大家試試,這個(gè)方法絕對(duì)有效,而且也是很簡(jiǎn)單的。
最終解決方法:根據(jù)上面的3個(gè)方法,最終我的解決方法是,在外層(父層)CSS代碼中加入下面兩個(gè)屬性值(一個(gè)都不能少)。
- clear:both;overflow:auto;
【編輯推薦】
- CSS絕對(duì)定位和相對(duì)定位的區(qū)別
- JavaScript動(dòng)態(tài)創(chuàng)建div屬性和樣式
- CSS中border和clear兩大屬性用法揭秘
- 正確使用CSS中position屬性
- 解讀DIV CSS網(wǎng)頁(yè)布局中CSS無(wú)效十個(gè)原因