CSS: 解決DIV FLOAT后,父DIV無(wú)法高度自適應(yīng)的問(wèn)題
在用CSS+DIV的布局中,經(jīng)常會(huì)發(fā)現(xiàn),當(dāng)一個(gè)DIV float之后,如果他的高度超過(guò)了其父DIV的高度時(shí),其父DIV的高度并不會(huì)相應(yīng)的進(jìn)行調(diào)整。要解決這個(gè)問(wèn)題(也叫做閉合(清除)浮動(dòng)),我們有四種辦法:
1. 額外標(biāo)簽法
這種方法就是向父容器的末尾再插入一個(gè)額外的標(biāo)簽,并令其清除浮動(dòng)(clear)以撐大父容器。這種方法瀏覽器兼容性好,沒(méi)有什么問(wèn)題,缺點(diǎn)就是需要額外的(而且通常是無(wú)語(yǔ)義的)標(biāo)簽。我個(gè)人比較喜歡這種方法,因?yàn)樗?jiǎn)單、實(shí)用、瀏覽器兼容性好,而且這種方法也是W3C推薦的方法
或者使用
2. 使用after偽類
這種方法就是對(duì)父容器使用after偽類和內(nèi)容聲明在指定的現(xiàn)在內(nèi)容末尾添加新的內(nèi)容。經(jīng)常的做法就是添加一個(gè)“點(diǎn)”,因?yàn)樗容^小不太引人注意。然后我們?cè)倮盟鼇?lái)清除浮動(dòng)(閉合浮動(dòng)元素),并隱藏這個(gè)內(nèi)容。這種方法兼容性一般,但經(jīng)過(guò)各種 hack 也可以應(yīng)付不同瀏覽器了,同時(shí)又可以保證html比較干凈。
#outer:after
{
content:”.”;
height:0;
visibility:hidden;
display:block;
clear:both;
}
3. 設(shè)置overflow為hidden或者auto
這種做法就是將父容器的overflow設(shè)為hidden或auot就可以在標(biāo)準(zhǔn)兼容瀏覽器中閉合浮動(dòng)元素。不過(guò)使用overflow的時(shí)候,可能會(huì)對(duì)頁(yè)面表現(xiàn)帶來(lái)影響,而且這種影響是不確定的,你最好是能在多個(gè)瀏覽器上測(cè)試你的頁(yè)面。
#outer
{
overflow:auto;
zoom:1;
}
overflow:auto;是讓高度自適應(yīng), zoom:1;是為了兼容IE6,也可以用height:1%;的方式來(lái)解決。
4. 浮動(dòng)外部元素,float-in-float
這種做法就是讓父容器也浮動(dòng),這利用到了浮動(dòng)元素的一個(gè)特性——浮動(dòng)元素會(huì)閉合浮動(dòng)元素。這種方式在 IE/Win 和標(biāo)準(zhǔn)兼容瀏覽器中都有較好的效果,但缺點(diǎn)也很明顯——父容器未必想浮動(dòng)就浮動(dòng)的了,畢竟浮動(dòng)是一種比較特殊的行為,有時(shí)布局不允許其浮動(dòng)也很正常。
看一下自己代碼的例子吧:
src=”../dms/get.html?path=”
alt=”\” style=”display: inline-block; width: 93px; height: 90px” />
里面迭代會(huì)出現(xiàn)很多div 里面的div會(huì)向左浮動(dòng),因而是父div的高度無(wú)法自適應(yīng)問(wèn)題的出現(xiàn)。
推薦文章
2024-11-28
2024-06-25
2024-01-04
2023-11-06
2023-10-30
2023-10-13
2023-10-10
穩(wěn)定
產(chǎn)品高可用性高并發(fā)貼心
項(xiàng)目群及時(shí)溝通專業(yè)
產(chǎn)品經(jīng)理1v1支持快速
MVP模式小步快跑承諾
我們選擇聲譽(yù)堅(jiān)持
10年專注高端品質(zhì)開(kāi)發(fā)聯(lián)系我們
友情鏈接: