幾種常用的清除浮動(dòng)方法

1、父級(jí)div定義偽類:after和zoom

    <style type="text/css">
        .div1 {
            background: #000080;
            border: 1px solid red;
        }
        .div2 {
            background: #800080;
            border: 1px solid red;
            height: 100px;
            margin-top: 10px
        }
        .left {
            float: left;
            width: 20%;
            height: 200px;
            background: #DDD
        }
        .right {
            float: right;
            width: 30%;
            height: 80px;
            background: #DDD
        }
        /*清除浮動(dòng)代碼*/
        .clearfloat:after {
            display: block;
            clear: both;
            content: "";
            visibility: hidden;
            height: 0
        }
        .clearfloat {
            zoom: 1
        }
    </style>
    <div class="div1 clearfloat">
        <div class="left">Left</div>
        <div class="right">Right</div>
    </div>
    <div class="div2">
        div2
    </div>

原理:IE8以上和非IE瀏覽器才支持:after,原理和方法2有點(diǎn)類似,zoom(IE轉(zhuǎn)有屬性)可解決ie6,ie7浮動(dòng)問題
優(yōu)點(diǎn):瀏覽器支持好,不容易出現(xiàn)怪問題(目前:大型網(wǎng)站都有使用,如:騰迅草娜,網(wǎng)易,新浪等等)
缺點(diǎn):代碼多痒筒,不少初學(xué)者不理解原理宰闰,要兩句代碼結(jié)合使用,才能讓主流瀏覽器都支持
建議:推薦使用簿透,建議定義公共類移袍,以減少CSS代碼
評(píng)分:★★★★☆

2.在結(jié)尾處添加空div標(biāo)簽clear:both

<style type="text/css">
      .div1 {
        background: #000080;
        border: 1px solid red;
      }
      .div2 {
        background: #800080;
        border: 1px solid red;
        height: 100px;
        margin-top: 10px;
      }

      .left {
        float: left;
        width: 20%;
        height: 200px;
        background: #ddd;
      }
      .right {
        float: right;
        width: 30%;
        height: 80px;
        background: #ddd;
      }

      /*清除浮動(dòng)代碼*/
      .clearfloat {
        clear: both;
      }
    </style>
    <div class="div1">
      <div class="left">Left</div>
      <div class="right">Right</div>
      <div class="clearfloat"></div>
    </div>
    <div class="div2">div2</div>

原理:添加一個(gè)空div,利用css提高的clear:both清除浮動(dòng)老充,讓父級(jí)div能自動(dòng)獲取到高度
優(yōu)點(diǎn):簡(jiǎn)單葡盗,代碼少,瀏覽器支持好啡浊,不容易出現(xiàn)怪問題
缺點(diǎn):不少初學(xué)者不理解原理觅够;如果頁(yè)面浮動(dòng)布局多,就要增加很多空div巷嚣,讓人感覺很不爽
建議:不推薦使用喘先,但此方法是以前主要使用的一種清除浮動(dòng)方法
評(píng)分:★★★☆☆

3.父級(jí)div定義height

<style type="text/css">
      .div1 {
        background: #000080;
        border: 1px solid red; /*解決代碼*/
        height: 200px;
      }
      .div2 {
        background: #800080;
        border: 1px solid red;
        height: 100px;
        margin-top: 10px;
      }

      .left {
        float: left;
        width: 20%;
        height: 200px;
        background: #ddd;
      }
      .right {
        float: right;
        width: 30%;
        height: 80px;
        background: #ddd;
      }
    </style>
    <div class="div1">
      <div class="left">Left</div>
      <div class="right">Right</div>
    </div>
    <div class="div2">div2</div>

原理:父級(jí)div手動(dòng)定義height,就解決了父級(jí)div無(wú)法自動(dòng)獲取到高度的問題
優(yōu)點(diǎn):簡(jiǎn)單廷粒,代碼少窘拯,容易掌握
缺點(diǎn):只適合高度固定的布局,要給出精確的高度坝茎,如果高度和父級(jí)div不一樣時(shí)涤姊,會(huì)產(chǎn)生問題
建議:不推薦使用,只建議高度固定的布局時(shí)使用
評(píng)分:★★☆☆☆

4.父級(jí)div定義overflow:hidden

<style type="text/css">
      .div1 {
        background: #000080;
        border: 1px solid red; /*解決代碼*/
        width: 98%;
        overflow: hidden;
      }
      .div2 {
        background: #800080;
        border: 1px solid red;
        height: 100px;
        margin-top: 10px;
        width: 98%;
      }

      .left {
        float: left;
        width: 20%;
        height: 200px;
        background: #ddd;
      }
      .right {
        float: right;
        width: 30%;
        height: 80px;
        background: #ddd;
      }
    </style>
    <div class="div1">
      <div class="left">Left</div>
      <div class="right">Right</div>
    </div>
    <div class="div2">div2</div>

原理:必須定義width或zoom:1景东,同時(shí)不能定義height砂轻,使用overflow:hidden時(shí),瀏覽器會(huì)自動(dòng)檢查浮動(dòng)區(qū)域的高度
優(yōu)點(diǎn):簡(jiǎn)單斤吐,代碼少,瀏覽器支持好
缺點(diǎn):不能和position配合使用厨喂,因?yàn)槌龅某叽绲臅?huì)被隱藏
建議:只推薦沒有使用position或?qū)verflow:hidden理解比較深的朋友使用
評(píng)分:★★★☆☆

5.父級(jí)div定義overflow:auto

<style type="text/css">
      .div1 {
        background: #000080;
        border: 1px solid red; /*解決代碼*/
        width: 98%;
        overflow: auto;
      }
      .div2 {
        background: #800080;
        border: 1px solid red;
        height: 100px;
        margin-top: 10px;
        width: 98%;
      }

      .left {
        float: left;
        width: 20%;
        height: 200px;
        background: #ddd;
      }
      .right {
        float: right;
        width: 30%;
        height: 80px;
        background: #ddd;
      }
    </style>
    <div class="div1">
      <div class="left">Left</div>
      <div class="right">Right</div>
    </div>
    <div class="div2">div2</div>

原理:必須定義width或zoom:1和措,同時(shí)不能定義height,使用overflow:auto時(shí)蜕煌,瀏覽器會(huì)自動(dòng)檢查浮動(dòng)區(qū)域的高度
優(yōu)點(diǎn):簡(jiǎn)單派阱,代碼少,瀏覽器支持好
缺點(diǎn):內(nèi)部寬高超過父級(jí)div時(shí)斜纪,會(huì)出現(xiàn)滾動(dòng)條贫母。
建議:不推薦使用文兑,如果你需要出現(xiàn)滾動(dòng)條或者確保你的代碼不會(huì)出現(xiàn)滾動(dòng)條就使用吧。
評(píng)分:★★☆☆☆

6.父級(jí)div也一起浮動(dòng)

<style type="text/css">
      .div1 {
        background: #000080;
        border: 1px solid red; /*解決代碼*/
        width: 98%;
        margin-bottom: 10px;
        float: left;
      }
      .div2 {
        background: #800080;
        border: 1px solid red;
        height: 100px;
        width: 98%; /*解決代碼*/
        clear: both;
      }

      .left {
        float: left;
        width: 20%;
        height: 200px;
        background: #ddd;
      }
      .right {
        float: right;
        width: 30%;
        height: 80px;
        background: #ddd;
      }
    </style>
    <div class="div1">
      <div class="left">Left</div>
      <div class="right">Right</div>
    </div>
    <div class="div2">div2</div>

原理:所有代碼一起浮動(dòng)腺劣,就變成了一個(gè)整體
優(yōu)點(diǎn):沒有優(yōu)點(diǎn)
缺點(diǎn):會(huì)產(chǎn)生新的浮動(dòng)問題绿贞。
建議:不推薦使用,只作了解橘原。
評(píng)分:★☆☆☆☆

7.父級(jí)div定義display:table

<style type="text/css">
      .div1 {
        background: #000080;
        border: 1px solid red; /*解決代碼*/
        width: 98%;
        display: table;
        margin-bottom: 10px;
      }
      .div2 {
        background: #800080;
        border: 1px solid red;
        height: 100px;
        width: 98%;
      }

      .left {
        float: left;
        width: 20%;
        height: 200px;
        background: #ddd;
      }
      .right {
        float: right;
        width: 30%;
        height: 80px;
        background: #ddd;
      }
    </style>
    <div class="div1">
      <div class="left">Left</div>
      <div class="right">Right</div>
    </div>
    <div class="div2">div2</div>

原理:將div屬性變成表格
優(yōu)點(diǎn):沒有優(yōu)點(diǎn)
缺點(diǎn):會(huì)產(chǎn)生新的未知問題
建議:不推薦使用籍铁,只作了解
評(píng)分:★☆☆☆☆

8、結(jié)尾處加br標(biāo)簽clear:both

<style type="text/css">
      .div1 {
        background: #000080;
        border: 1px solid red;
        margin-bottom: 10px;
        zoom: 1;
      }
      .div2 {
        background: #800080;
        border: 1px solid red;
        height: 100px;
      }

      .left {
        float: left;
        width: 20%;
        height: 200px;
        background: #ddd;
      }
      .right {
        float: right;
        width: 30%;
        height: 80px;
        background: #ddd;
      }

      .clearfloat {
        clear: both;
      }
    </style>
    <div class="div1">
      <div class="left">Left</div>
      <div class="right">Right</div>
      <br class="clearfloat" />
    </div>
    <div class="div2">div2</div>

原理:父級(jí)div定義zoom:1來(lái)解決IE浮動(dòng)問題趾断,結(jié)尾處加br標(biāo)簽clear:both
建議:不推薦使用拒名,只作了解
評(píng)分:★☆☆☆☆

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市芋酌,隨后出現(xiàn)的幾起案子增显,更是在濱河造成了極大的恐慌,老刑警劉巖脐帝,帶你破解...
    沈念sama閱讀 207,248評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件甸怕,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡腮恩,警方通過查閱死者的電腦和手機(jī)梢杭,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,681評(píng)論 2 381
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)秸滴,“玉大人武契,你說我怎么就攤上這事〉春” “怎么了咒唆?”我有些...
    開封第一講書人閱讀 153,443評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)释液。 經(jīng)常有香客問我全释,道長(zhǎng),這世上最難降的妖魔是什么误债? 我笑而不...
    開封第一講書人閱讀 55,475評(píng)論 1 279
  • 正文 為了忘掉前任浸船,我火速辦了婚禮,結(jié)果婚禮上寝蹈,老公的妹妹穿的比我還像新娘李命。我一直安慰自己,他們只是感情好箫老,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,458評(píng)論 5 374
  • 文/花漫 我一把揭開白布封字。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪阔籽。 梳的紋絲不亂的頭發(fā)上流妻,一...
    開封第一講書人閱讀 49,185評(píng)論 1 284
  • 那天,我揣著相機(jī)與錄音笆制,去河邊找鬼绅这。 笑死,一個(gè)胖子當(dāng)著我的面吹牛项贺,可吹牛的內(nèi)容都是我干的君躺。 我是一名探鬼主播,決...
    沈念sama閱讀 38,451評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼开缎,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼棕叫!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起奕删,我...
    開封第一講書人閱讀 37,112評(píng)論 0 261
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤俺泣,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后完残,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體伏钠,經(jīng)...
    沈念sama閱讀 43,609評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,083評(píng)論 2 325
  • 正文 我和宋清朗相戀三年谨设,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了熟掂。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,163評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡扎拣,死狀恐怖赴肚,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情二蓝,我是刑警寧澤誉券,帶...
    沈念sama閱讀 33,803評(píng)論 4 323
  • 正文 年R本政府宣布,位于F島的核電站刊愚,受9級(jí)特大地震影響踊跟,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜鸥诽,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,357評(píng)論 3 307
  • 文/蒙蒙 一商玫、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧衙传,春花似錦决帖、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,357評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)扁远。三九已至俊鱼,卻和暖如春刻像,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背并闲。 一陣腳步聲響...
    開封第一講書人閱讀 31,590評(píng)論 1 261
  • 我被黑心中介騙來(lái)泰國(guó)打工细睡, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人帝火。 一個(gè)月前我還...
    沈念sama閱讀 45,636評(píng)論 2 355
  • 正文 我出身青樓溜徙,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親犀填。 傳聞我的和親對(duì)象是個(gè)殘疾皇子蠢壹,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,925評(píng)論 2 344