css浮動Float

来源:http://www.cnblogs.com/jiangshichao/archive/2017/09/16/7533520.html
-Advertisement-
Play Games

核心:浮動元素會脫離文檔流並向左/向右移動,直到碰到父元素或者另外一個浮動元素。 float :left 向左浮動 right 向右浮動 none (預設) inherit 繼承父元素 float效果 原效果圖 換張圖.....因為我突然發現一個問題,用這張圖不好解釋........ 原圖 代碼 然 ...


核心:浮動元素會脫離文檔流並向左/向右移動,直到碰到父元素或者另外一個浮動元素。

 

float :left 向左浮動

   right 向右浮動

   none (預設)

      inherit  繼承父元素

 

float效果

原效果圖

 

換張圖.....因為我突然發現一個問題,用這張圖不好解釋........

原圖

代碼

        #container{
            width: 1000px;
            background-color:      #48D1CC;
            margin: 0 auto;
            padding: 40px;
        }
        .box1{
            width: 250px;
            height: 200px;
            margin: 20px 20px;
            background-color: greenyellow;
        }
        .box2{
            width: 400px;
            height: 300px;
            margin: 20px 20px;
            background-color: yellow;
        }
        .box3{
            width: 500px;
            height: 400px;
            margin: 20px 20px;
            background-color: lightblue;
        }
        span{
            font-size: 25px;
        }



        <div id="container">
            <div class="box1"><span>1111111111</span></div>
            <div class="box2"><span>222222222222</span></div>
            <div class="box3"><span>33333333333333</span></div>
        </div>            

 

 

 

 

然後讓div1右移動,效果如下圖

當div  float設置為right時,div1會脫離標準文檔流,div2和div3會重新組成新的文檔流,而div1會向右浮動直到碰到父元素

當設置div2 float為right時,div2到第二行的最後邊去了,這是為什麼,為什麼不在第一排呢?這是因為第一排是block,單獨占據一行,並且還在標準流中,所以div2法占用其位置

當div2 float為left時,效果如下,div2浮動到div3上去了,這邊有一個問題,div3中的span被擠到下麵去了,這是為什麼呢,因為使用float脫離文檔流時,其他盒子會無視這個元素,但其他盒子內的文本依然會為這個元素讓出位置,環繞在周圍。而對於使用absolute positioning脫離文檔流的元素,其他盒子與其他盒子內的文本都會無視它。

這邊有個問題,為什麼div2會在div2下麵一點呢,不是應該在同一行嗎?

 

當float都設置成left時,由於div 1 2 3都脫離了標準流,會導致父元素高度坍塌

 

使用clear清除浮動

由於浮動帶來的不確定性.....經常會造成佈局的紊亂,清除浮動就非常有必要了

 

clear屬性不允許被清除浮動的元素左邊或者右邊挨著浮動元素,底層原理是在被清除浮動的元素上邊或者下邊添加足夠的清除空間

比如剛剛上面的圖,我要給父元素清除浮動,就只要

1 <div id="container">
2     <div class="box1"><span>1111111111</span></div>
3     <div class="box2"><span>222222222222</span></div>
4     <div class="box3"><span>33333333333333</span></div>
5     <div style="clear: both"></div>
6 </div>

 

然後上面就變成這樣了

註意,不要給浮動元素上添加浮動,就算給元素清除了浮動,但它還是脫離標準文檔流的,所以父元素還是坍塌的

 

現在我們一般清除浮動的方法是使用clearfix 類,相容性還比較好

全瀏覽器通用的clearfix方案

引用zoom支持IE6/IE7

加入:before解決現代瀏覽器的邊距摺疊問題

 1  .clearfix:before,.clearfix:after{
 2      display: table;
 3      content: "";
 4  }
 5  .clearfix:after{
 6      clear: both;
 7  }
 8  .clearfix{
 9      *zoom:1;
10  }
  

 

1 <div id="container" class="clearfix">
2     <div class="box1"><span>1111111111</span></div>
3     <div class="box2"><span>222222222222</span></div>
4     <div class="box3"><span>33333333333333</span></div>
5 </div>

 

使用overflow:hidden;清除浮動

還有一種是BFC清除浮動

使用overflow:hidden;

1 #container{
2       width: 1320px;
3       background-color:      #48D1CC;
4       margin: 0 auto;
5       padding: 40px;
6       overflow: hidden;
7 }

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 強大的mixin mixin類似於函數的功能,可以達到模塊復用的效果 mixin show: 定義一個類似函數的功能,名字叫show,裡面的就是他的內容 +show: 調用show,每調用一次執行一次裡面的內容 編譯之後的結果: mixin也可以傳遞參數 編譯之後的結果: mixin支持嵌套調用 編 ...
  • thinksns系統的js載入順序整理 1.jQuery.js 2.jquery.form.js 3.common.js 4.core.js //thinksns的核心js對象 5.module.js //thinksns獨有的HTML標簽關聯模型 6.module.common.js ...... ...
  • 昨天,介紹了原型、原型鏈以及從一個實例化對象 cat 探尋原型鏈的秘密,今天我們從 Animal 出發,探究 Animal 所在的原型鏈。 Animal 的原型鏈 昨天我們通過代碼生成一個 Animal 類: 我們說對象都有__proto__屬性,那麼 Animal 也有啊!Animal 的原型是什 ...
  • 一、轉義與非轉義 jade模板文件代碼: 編譯之後的效果: 解釋: #{} : 帶有轉義效果的輸出 !{}: 不轉義輸出 = : 與#{}效果相同 != : 與!{}效果相同 \#{}:原樣輸出#{} 屬性後面跟#{age},會把變數解釋出來,如果這個變數沒有定義,就會輸出undefined。在實際 ...
  • 1.offsetTop: obj.offsetTop 指 obj 相對於版面或由 offsetParent 屬性指定的父坐標的計算上側位置。 2.clientTop: 這個返回的是元素周圍邊框的厚度,如果不指定一個邊框或者不定位改元素,他的值就是0。 3.scrollTop: 設置或獲取位於對象最頂 ...
  • 一、javascript簡介 1、javaScript是什麼? JavaScript一種直譯式腳本語言,是一種動態類型、弱類型、基於原型的語言,內置支持類型。它的解釋器被稱為JavaScript引擎,為瀏覽器的一部分,廣泛用於客戶端的腳本語言,最早是在HTML(標準通用標記語言下的一個應用)網頁上使 ...
  • 基本語法 <marquee>滾動文字 </marquee> 文字移動屬性的設置 方向 <direction=#> #=left, right,up,down 方式 <bihavior=#> #=scroll,由一端滾動到另一端,會重覆 slide, 由一端滾動到另一端,不會重覆 alternate ...
  • 效果: ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...