html清除浮動

css浮動可以實現很多功能,比如多欄布局,多元素的內聯排列等等,在同時也帶來了一些問題,浮動后就脫離了原來的文檔流,進而就會造成父元素塌陷。

目前解決浮動造成的這個問題主要有一下幾種方案:

1. clear:both清除浮動

   <div class="container">
    <div class="box"></div>
    <div class="box"></div>
    <div class="box"></div>
    <div style="clear:both"></div>
</div>

    .container {
        border: 1px solid red;
    }

    .box {
        height: 100px;
        width: 100px;
        margin: 20px;
        background: green;
        float: left;
    }

2. 塊狀格式化上下文清除浮動

<b>什么是格式化上下文</b>
* 可以包含浮動元素
* 不被浮動元素覆蓋
* 阻止父子元素的margin折疊

<b>如何創建格式化上下文</b>
* 根元素
* 浮動元素(float不是none)
* 絕對定位元素(position為fixed或absolute)
* display取值為inline-block,table-cell,table-caption,flex,inline-flex之一
* overflow不是visible的元

<div class="container">
        <div class="box"></div>
        <div class="box"></div>
        <div class="box"></div>
    </div>
        .container {
            border: 1px solid red;
            /*display:table;*/
            float:left;
            /*overflow: hidden;*/
            /*position: absolute;*/
        }

        .box {
            height: 100px;
            width: 100px;
            margin: 20px;
            background: green;
            float: left;
        }

3. 偽類清楚浮動

    <div class="clearfix">
        <div class="box"></div>
        <div class="box"></div>
        <div class="box"></div>
    </div>
        .clearfix:before,
        .clearfix:after {
            display: table;
            content: " ";
        }

        .clearfix:after {
            clear: both;
        }

        .clearfix {
            *zoom: 1;
        }

總結

常用的以上三種清楚浮動的辦法,推薦使用第三種,兼容性比較好,并且沒有添加格外的一些類,可移植性比較好

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標簽默認的外補...
    _Yfling閱讀 13,786評論 1 92
  • 在樣式中增加如下樣式 before的樣式是清除margin-top塌陷要用的,after的樣式是清除浮動用的(防止...
    Oo晨晨oO閱讀 841評論 0 0
  • 浮動,從誕生那天起,它就是個特別的屬性——既為網頁布局帶來新的方法,卻又隨之產生一系列的問題。當然,隨著時間的推移...
    郝特么冷閱讀 851評論 0 6
  • 這篇文章極好,以至于讓我受益良多,就一字沒有改動的轉發過來一絲冰涼老師的文章 需要注意的是,display:tab...
    新晉小牛牛閱讀 1,069評論 0 2
  • 1.安裝Homebrew 因為安裝nginx+rtmp需要Homebrew。使用命令man brew查看是否裝有H...
    xiari1991閱讀 329評論 0 0