CSS中的浮動和浮動的影響及消除

web.jpeg

1. 文檔流

  • 文檔流在網頁的底層,表示的事一個網頁的位置
  • 我們創(chuàng)建的元素默認都是處在文檔流中
  • 文檔流的主要特點表現為塊級元素
    • 塊級元素

1.會獨占一行,自上向下排列 2.默認的寬度是100% 3.默認的高度是內容的高度

  • 行內元素

1.不會獨占一行,根據內容的決定寬度 2.高度和寬度都是被內容撐開的

2.浮動 float

浮動的產生就是為了,解決塊級盒子不在一行顯示的情況

  • 1.浮動脫離文檔流的,原來還在文檔流的元素,會向上移動
    1. 元素浮動以后,會盡量向頁面的左上或是右上漂浮,直到遇到父元素的邊框或者其他元素的浮動元素
    1. 如果浮動的元素上邊是一個沒有浮動的塊級元素,則浮動的元素不會超過塊級元素
  • 4.浮動的元素不會超過上邊的兄弟元素
    1. 浮動會更改元素的顯示方式 :inline-block
脫標.png
浮動文字饒邊.png

3.浮動中高度塌陷


 <style>
        .box{
            border: 10px solid yellowgreen;
        }
        .sun{
            width: 100px;
            height: 100px;
            background-color: burlywood;
         float: left;

        }

        .box2{
            height: 200px;
            width: 300px;
            background-color: aquamarine;
        }

      
    
    </style>

<body>
    <div class="box">
        <div class="sun"></div>
    </div>

    <div class="box2"></div>
    
</body>

image.png

在標準流中,子元素是可以撐開父元素的,但是上圖中我們看到,子元素浮動脫離標準流,使得父元素的高度為0,就是高度塌陷

3.1消除浮動帶來的負面影響

方式一 開啟BFC

在開發(fā)中,元素的塌陷會導致布局的變化,所以要避免這個情況,要清除浮動, 其實在頁面中的元素都一個隱含的屬性叫做:Block Formatting Context簡稱:BFC

BFC有如下特點:
1.父元素的外邊距不會和子元素重疊
2.開啟BFC的元素不會被浮動元素覆蓋
3.開啟BFC的元素可以包含浮動的子元素

如何開啟BFC ?
我們只能間接的開啟比如 :
1.設置元素的浮動 - 使用這個方式,雖然可以撐開父元素,但是父元素的顯示方式變化 inline-block,導致父元素的寬度丟失
2.設置元素的絕對定位
3.設置元素為inline-block
4.overflow:auto 給父元素添加這個屬性,這個影響比較?。ǖ窃诙ㄎ坏臅r候就有影響)

所以


image.png
image.png
方式二 插入一個新的標簽使用clear屬性
 <style>
        .box1 {
            border: 3px solid yellowgreen;
        }
        .sun1{
            width: 200px;
            height: 200px;
            background-color: aqua;
            float: left;
        }
        .sun2{
           
            width: 200px;
            height: 200px;
            background-color:rebeccapurple;
            float: left;
        
        }

        .box2{
            width: 300px;
            height: 200px;
            background-color: red;
        }
        .clear{
            clear: both;
        }
    </style>
image.png
image.png

方式三 使用偽元素

使用偽元素的原理和 插入新的標簽是一樣的,不過使用偽元素,界面代碼中不顯示,插入的標簽,提高代碼的可讀性

 <style>
        .box1 {
            border: 3px solid yellowgreen;
        }
        .sun1{
            width: 200px;
            height: 200px;
            background-color: aqua;
            float: left;
        }
        .sun2{
           
            width: 200px;
            height: 200px;
            background-color:rebeccapurple;
            float: left;
        
        }

        .box2{
            width: 300px;
            height: 200px;
            background-color: red;
        }
        .clearfix:after{
            /* 添加一個內容空白的 */
            content: "";
            /* 轉化為塊級元素 */
            display: block;
            /* 設置元素是否顯示 */
            visibility: hidden;
            /* 高度為0 */
            height: 0;
            /* 行高為0 */
            line-height: 0;
            /* 清楚 */
            clear: both;
        }
        .clearfix{
            /* 兼容ie67瀏覽器 */
            *zoom: 1;
        }

    </style>

<body>
    <div class="box1 clearfix">
        <div class="sun1"></div>
        <div class="sun2"></div>
    </div>
    <div class="box2"></div>
</body>

image.png

雙偽元素清楚浮動

<style>
 .clearfix:before, .clearfix:after {
            content: "";
            display: block;  /* 觸發(fā)BFC 防止外邊距合并 */
        }
        .clearfix:after {
            clear: both;
        }
        .clearfix {
            *zoom: 1;
        }

</style>
  • 清除浮動
 .clearfix:before, .clearfix:after {
            content: "";
            display: table; 
          clear: both;

        }
     
        .clearfix {
            *zoom: 1;
        }
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 一,浮動元素有什么特征?對父容器、其他浮動元素、普通元素、文字分別有什么影響? 浮動模型是一種可視化格式模型,浮動...
    DeeJay_Y閱讀 992評論 0 4
  • relative:生成相對定位的元素,通過top,bottom,left,right的位置相對于其正常位置進行定位...
    zx9426閱讀 1,070評論 0 2
  • 一、常用css定位流描述 1、文檔流定位 position: static(默認方式) 頁面元素的默認定位方式 塊...
    EdmundChen閱讀 1,964評論 0 8
  • 從業(yè)三年,項目無數,現在回過頭來,想要把一些重要的知識用白話整理出來:這個東西是什么?怎樣才是最佳實踐?希望對自己...
    齊修_qixiuss閱讀 40,754評論 19 203
  • 主要內容: 浮動的介紹、清除浮動、各種定位、BFC以及外邊距合并的介紹。 浮動 什么是浮動元素 浮動元素是floa...
    苦瓜_6閱讀 650評論 0 0

友情鏈接更多精彩內容