成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

如何清除浮動(dòng)

fjcgreat / 728人閱讀

摘要:本文概述本文的框架圖如下一浮動(dòng)到底是什么中給出的浮動(dòng)定義為浮動(dòng)的框可以向左或向右移動(dòng),直到它的外邊緣碰到包含框或另一個(gè)浮動(dòng)框的邊框?yàn)橹?。如果把所有三個(gè)框都向左浮動(dòng),那么框向左浮動(dòng)直到碰到包含框,另外兩個(gè)框向左浮動(dòng)直到碰到前一個(gè)浮動(dòng)框。

本文概述

本文的框架圖如下:

一、浮動(dòng)到底是什么?

W3school中給出的浮動(dòng)定義為浮動(dòng)的框可以向左或向右移動(dòng),直到它的外邊緣碰到包含框或另一個(gè)浮動(dòng)框的邊框?yàn)橹埂?/b>由于浮動(dòng)框脫離文檔的普通流中,所以文檔的普通流中的塊框表現(xiàn)得就像浮動(dòng)框不存在一樣。

二、浮動(dòng)有什么特點(diǎn)?

浮動(dòng)的特點(diǎn),可以用八個(gè)字總結(jié):脫標(biāo)、貼邊、字圍和收縮。

為了更好說(shuō)明,請(qǐng)看下圖:
當(dāng)框 1 向左浮動(dòng)時(shí),它脫離文檔流(脫標(biāo))并且向左移動(dòng)(貼邊),直到它的左邊緣碰到包含框的左邊緣。因?yàn)樗辉偬幱谖臋n流中,所以它不占據(jù)空間,實(shí)際上覆蓋住了框 2,使框 2 從視圖中消失。如果框2中有文字,就會(huì)圍著框1排開(字圍)。

如果把所有三個(gè)框都向左浮動(dòng),那么框 1 向左浮動(dòng)直到碰到包含框,另外兩個(gè)框向左浮動(dòng)直到碰到前一個(gè)浮動(dòng)框。

下面著重講解下第四個(gè)特點(diǎn)--收縮

一個(gè)浮動(dòng)的內(nèi)聯(lián)元素(比如span img標(biāo)簽)不需要設(shè)置display:block就可以設(shè)置寬度。




這是一段文字

得到以下的效果:

我們都知道div標(biāo)簽是塊級(jí)元素,會(huì)獨(dú)占一行,然而上面的例子中將div設(shè)置為左浮后,其寬度不再是占滿一行,而是收緊為內(nèi)部元素的寬度,這就是浮動(dòng)第四個(gè)特征的含義。

三、浮動(dòng)有什么缺點(diǎn)?

先看下面這段代碼:

  


我們想讓父容器包裹著三個(gè)浮動(dòng)元素,然而事與愿違,得到卻是這樣的結(jié)果:

這就是浮動(dòng)帶來(lái)副作用----父容器高度塌陷,于是清理浮動(dòng)就顯著至關(guān)重要。

四、如何清理浮動(dòng)?

清除浮動(dòng)不是不用浮動(dòng),清除浮動(dòng)產(chǎn)生的父容器高度塌陷。

套路1:給浮動(dòng)元素的父元素添加高度(擴(kuò)展性不好)

如果一個(gè)元素要浮動(dòng),那么它的父元素一定要有高度。高度的盒子,才能關(guān)住浮動(dòng)??梢酝ㄟ^(guò)直接給父元素設(shè)置height,實(shí)際應(yīng)用中我們不大可能給所有的盒子加高度,不僅麻煩,并且不能適應(yīng)頁(yè)面的快速變化;另外一種,父容器的高度可以通過(guò)內(nèi)容撐開(比如img圖片),實(shí)際當(dāng)中此方法用的比較多。

套路2:clear:both;

在最后一個(gè)子元素新添加最后一個(gè)冗余元素,然后將其設(shè)置clear:both,這樣就可以清除浮動(dòng)。這里強(qiáng)調(diào)一點(diǎn),即在父級(jí)元素末尾添加的元素必須是一個(gè)塊級(jí)元素,否則無(wú)法撐起父級(jí)元素高度。

    
    #wrap{
          border: 1px solid;
    }
    #inner{
          float: left;
          width: 200px;
          height: 200px;
          background: pink;
    }
套路3:偽元素清除浮動(dòng)

上面那種辦法固然可以清除浮動(dòng),但是我們不想在頁(yè)面中添加這些沒有意義的冗余元素,此時(shí)如何清除浮動(dòng)嗎?
結(jié)合 :after 偽元素和 IEhack ,可以完美兼容當(dāng)前主流的各大瀏覽器,這里的 IEhack 指的是觸發(fā) hasLayout。

      #wrap {
        border: 1px solid;
      }
      #inner {
        float: left;
        width: 200px;
        height: 200px;
        background: pink;
      }
      /*開啟haslayout*/
      .clearfix {
        *zoom: 1;
      }
      /*ie6 7 不支持偽元素*/
      .clearfix:after {
        content: "";
        display: block;
        clear: both;
        height:0;
        line-height:0;
        visibility:hidden;//允許瀏覽器渲染它,但是不顯示出來(lái)
      }

給浮動(dòng)元素的父容器添加一個(gè)clearfix的class,然后給這個(gè)class添加一個(gè):after偽元素,實(shí)現(xiàn)元素末尾添加一個(gè)看不見的塊元素來(lái)清理浮動(dòng)。這是通用的清理浮動(dòng)方案,推薦使用

套路4:給父元素使用overflow:hidden;

這種方案讓父容器形成了BFC(塊級(jí)格式上下文),而BFC可以包含浮動(dòng),通常用來(lái)解決浮動(dòng)父元素高度坍塌的問(wèn)題。

BFC的觸發(fā)方式

我們可以給父元素添加以下屬性來(lái)觸發(fā)BFC:

float 為 left | right

overflow 為 hidden | auto | scorll

display 為 table-cell | table-caption | inline-block

position 為 absolute | fixed

這里可以給父元素設(shè)置overflow:auto,但是為了兼容IE最好使用overflow:hidden。

但這種辦法有個(gè)缺陷:如果有內(nèi)容出了盒子,用這種方法就會(huì)把多的部分裁切掉,所以這時(shí)候不能使用。

BFC的主要特征:

BFC容器是一個(gè)隔離的容器,和其他元素互不干擾;所以我們可以用觸發(fā)兩個(gè)元素的BFC來(lái)解決垂直邊距折疊問(wèn)題。

BFC不會(huì)重疊浮動(dòng)元素

BFC可以包含浮動(dòng),這可以清除浮動(dòng)。

套路5:br標(biāo)簽清浮動(dòng)

br標(biāo)簽存在一個(gè)屬性:clear。這個(gè)屬性就是能夠清除浮動(dòng)的利器,在br標(biāo)簽中設(shè)置屬性clear,并賦值all。即能清除掉浮動(dòng)。

    

      #wrap {
        border: 1px solid;
      }
      #inner {
        float: left;
        width: 200px;
        height: 200px;
        background: pink;
      }

如果覺得文章對(duì)你有些許幫助,歡迎在我的GitHub博客點(diǎn)贊和關(guān)注,感激不盡!

參考文章 br清浮動(dòng)的原理與clear:both的兼容 清浮動(dòng) | 如何清除浮動(dòng) CSS-清除浮動(dòng)

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/99191.html

相關(guān)文章

  • 如何清除浮動(dòng)

    摘要:本文概述本文的框架圖如下一浮動(dòng)到底是什么中給出的浮動(dòng)定義為浮動(dòng)的框可以向左或向右移動(dòng),直到它的外邊緣碰到包含框或另一個(gè)浮動(dòng)框的邊框?yàn)橹?。如果把所有三個(gè)框都向左浮動(dòng),那么框向左浮動(dòng)直到碰到包含框,另外兩個(gè)框向左浮動(dòng)直到碰到前一個(gè)浮動(dòng)框。 本文概述 本文的框架圖如下: showImg(https://segmentfault.com/img/remote/1460000016978861?...

    amuqiao 評(píng)論0 收藏0
  • 如何清除浮動(dòng)

    摘要:本文概述本文的框架圖如下一浮動(dòng)到底是什么中給出的浮動(dòng)定義為浮動(dòng)的框可以向左或向右移動(dòng),直到它的外邊緣碰到包含框或另一個(gè)浮動(dòng)框的邊框?yàn)橹?。如果把所有三個(gè)框都向左浮動(dòng),那么框向左浮動(dòng)直到碰到包含框,另外兩個(gè)框向左浮動(dòng)直到碰到前一個(gè)浮動(dòng)框。 本文概述 本文的框架圖如下: showImg(https://segmentfault.com/img/remote/1460000016978861?...

    wua_wua2012 評(píng)論0 收藏0
  • 為何要清除浮動(dòng)?如何清除

    摘要:原因元素設(shè)置了屬性后,就會(huì)脫離文檔流,當(dāng)包含框的高度小于浮動(dòng)框的時(shí)候,會(huì)出現(xiàn)高度塌陷。因此才需要清除浮動(dòng)表現(xiàn)如圖包括框已經(jīng)包不住的圖片了清除浮動(dòng)方法給包含框添加偽元素清除浮動(dòng)。代碼使用,原理讓浮動(dòng)塊包含在同一個(gè)中。原因: 元素設(shè)置了float屬性后,就會(huì)脫離文檔流,當(dāng) 包含框 的高度小于 浮動(dòng)框 的時(shí)候,會(huì)出現(xiàn)高度塌陷。因此才需要清除浮動(dòng)! 表現(xiàn)如圖:包括框container已經(jīng)包不住flo...

    shixinzhang 評(píng)論0 收藏0
  • css清除浮動(dòng)的原理

    摘要:最近學(xué)習(xí)發(fā)現(xiàn)了高度塌陷時(shí)候要清除浮動(dòng)為了理解清楚浮動(dòng)原理網(wǎng)上找了不少資料發(fā)現(xiàn)都寫的不是很清楚而且都是一模一樣的內(nèi)容我在里分享一下我對(duì)清楚浮動(dòng)原理的理解如果你已經(jīng)很了解什么是浮動(dòng)和浮動(dòng)的效果你可以直接跳轉(zhuǎn)到三如何清除浮動(dòng)重點(diǎn)閱讀一什么是浮動(dòng)最近學(xué)習(xí)css發(fā)現(xiàn)了高度塌陷時(shí)候要清除浮動(dòng),為了理解清楚浮動(dòng)原理,網(wǎng)上找了不少資料,發(fā)現(xiàn)都寫的不是很清楚,而且都是一模一樣的內(nèi)容,我在里分享一下我對(duì)清楚浮動(dòng)...

    番茄西紅柿 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<