css清除浮動的原理

最近學習css發現了高度塌陷時候要清除浮動,為了理解清楚浮動原理,網上找了不少資料,發現都寫的不是很清楚,而且都是一模一樣的內容,我在里分享一下我對清楚浮動原理的理解,

如果你已經很了解什么是浮動浮動的效果你可以直接跳轉到三.如何清除浮動(重點)閱讀

一.什么是浮動
首先我們需要知道定位
元素在頁面中的位置就是定位,解決問題之前我們先來了解下幾種定位方式
1、普通流定位 static(默認方式)
  普通流定位,又稱為文檔流定位,是頁面元素的默認定位方式
  頁面中的塊級元素:按照從上到下的方式逐個排列
  頁面中的行內元素:按照從左到右的方式逐個排列
  但是如何讓多個塊級元素在一行內顯示?
  這里就引出了浮動定位
2、浮動定位 float
  float屬性 取值為 left/right
  這個屬性原本不是用來布局的,而是用來做文字環繞的,但是后來人們發現做布局也不錯,就一直這么用了,甚至有些時候都忘了用他做文字環繞
3、相對定位 relative
  元素會相對于它原來的位置偏移某個距離,改變元素位置后,元素原本的空間依然會被保留
  屬性:position
  取值:relative
  配合著 偏移屬性(top/right/bottom/left)實現位置的改變
4、絕對定位 absolute
如果元素被設置為絕對定位的話,將具備以下幾個特征
  1、脫離文檔流-不占據頁面空間
  2、通過偏移屬性固定元素位置
  3、相對于 最近的已定位的祖先元素實現位置固定
  4、如果沒有已定位祖先元素,那么就相對于最初的包含塊(body,html)去實現位置的固定
  屬性:position
  取值:absolute
  配合著 偏移屬性(top/right/bottom/left)實現位置的固定
5、固定定位 fixed
  將元素固定在頁面的某個位置處,不會隨著滾動條而發生位置移動
  屬性:position
  取值:fixed
  配合著 偏移屬性(top/right/bottom/left)實現位置的固定

二.浮動的效果
  浮動 之后會怎么樣?
  1、浮動定位元素會被排除在文檔流之外-脫離文檔流(不占據頁面空間),其余的元素要上前補位
  2、浮動元素會停靠在父元素的左邊或右邊,或停靠在其他已浮動元素的邊緣上(元素只能在當前所在行浮動)
  3、浮動元素依然位于父元素之內
  4、浮動元素處理的問題-解決多個塊級元素在一行內顯示的問題
注意
  1、一行內,顯示不下所有的已浮動元素時,最后一個將換行
  2、元素一旦浮動起來之后,那么寬度將變成自適應(寬度由內容決定)
  3、元素一旦浮動起來之后,那么就將變成塊級元素,尤其對行內元素,影響最大
  塊級元素:允許修改尺寸
  行內元素:不允許修改尺寸
4、文本,行內元素,行內塊元素時采用環繞的方式來排列的,是不會被浮動元素壓在底下的,會巧妙的避開浮動元素
  浮動 之后會有什么樣的影響?
  由于浮動元素會脫離文檔流,所以導致不占據頁面空間,所以會對父元素高度帶來一定影響。如果一個元素中包含的元素全部是浮動元素,那么該元素高度將變成0(高度塌陷)

?

三.如何清除浮動(重點)
解決方案 及 原理分析

網上有很多種方法,我這里只介紹一種非常好用的方法,設置class名為clearfix

原理:如果子元素全部浮動,父元素就會塌陷,所以在所有浮動子元素后添加一個沒有浮動元素把父元素撐起來,這個元素找不到、不占據空間,不能讓它里面有內容,有內容也要隱藏

.clearfix:after{content:'.';
          clear:both;
          display:block;
          height:0;
          overflow:hidden;
          visibility:hidden;
        } .clearfix:after{zoom:1;}/*解決IE的問題
*/
//visibility:hidden;隱藏元素,但是位置留著
//display:none;隱藏元素,不占據空間,徹底隱藏
//after:偽對象選擇符

?

本文轉載于:猿2048?https://www.mk2048.com/blog/blog.php?id=i2ikhab&title=css清除浮動的原理

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/370667.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/370667.shtml
英文地址,請注明出處:http://en.pswp.cn/news/370667.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

SpringBoot03 項目熱部署

1 問題 在編寫springBoot項目時,經常需要修改代碼;但是每次修改代碼后都需重新啟動,修改的代碼才會生效 2 這么實現IDEA能夠像Eclipse那樣保存過后就可以自動進行刷新呢 將springBoot項目進行熱部署即可 3 如何實現SpringBoot項目的熱部署01 …

STM32實現流水燈

led.c #include"led.h"void Led_Init(void) {GPIO_InitTypeDef GPIO_VALUE; //???RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);//???GPIO_VALUE.GPIO_ModeGPIO_Mode_Out_PP;//???? ????GPIO_VALUE.GPIO_PinGPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_…

jacob 報錯 Can't co-create object

問題:開始時一切正常,后來什么都沒該,出現Cant co-create object報錯,即是創建不了ActiveXComponent wdnew ActiveXComponent("Word.Application"); 偶爾發現任務管理器中word進程居然達到10個,而我沒有打開…

map分組后取前10個_map根據屬性排序、取出map前n個

/*** map根據value排序* flag 1 正序* flag 0 倒序** param map* param flag* return*/public static > LinkedHashMap sortByValue(Map map, int flag) {LinkedHashMap sortMap new LinkedHashMap<>();if (flag 1) {map.entrySet().stream().sorted(Comparator.c…

wxpython可視化_使用wxPython的繪圖模塊wxPyPlot進行數據可視化

[Python進階(四十)-數據可視化の使用matplotlib進行繪圖前言??matplotlib是基于Python語言的開源項目&#xff0c;旨在為Python提供一個數據繪圖包。我將在這篇文章中介紹matplotlib A #-*- coding: utf-8 -*- ############################################################…

在Java EE 6中將Bean驗證與JAX-RS集成

JavaBeans驗證&#xff08;Bean驗證&#xff09;是一種新的驗證模型&#xff0c;可作為Java EE 6平臺的一部分使用。 約束條件支持Bean驗證模型&#xff0c;該約束以注釋的形式出現在JavaBeans組件&#xff08;例如托管Bean&#xff09;的字段&#xff0c;方法或類上。 javax.…

如何讓浮動的元素換行??css

當你想要做成這種布局效果的時候 紫色框里面的內容那樣 它是一個列表 li元素是塊級元素 默認大小是父元素ul的寬 并且換行 如果li沒有背景的話那就不用管了 可是問題來了它不但有背景 而且是根據文字自適應的寬高 這就是inline-block類型的功能了 那么想讓li是inline-bl…

Python學習之類和實例

面向對象最重要的概念就是類&#xff08;Class&#xff09;和實例&#xff08;Instance&#xff09;&#xff0c;必須牢記類是抽象的模板&#xff0c;比如Student類&#xff0c;而實例是根據類創建出來的一個個具體的“對象”&#xff0c;每個對象都擁有相同的方法&#xff0c;…

解決sublime里面的vue高亮的問題

下載插件文件&#xff1a;https://github.com/vuejs/vue-syntax-highlight 直接在官網下載放在安裝時候的packages目錄下&#xff08;sublime text3\Sublime Text3\Data\Packages&#xff09; 在Packages文件夾下新建一個vue的文件&#xff0c;把第一步下載的文件復制進去 subl…

python矩形填充顏色_在Python中找到所有用0填充的矩形

假設我們有一個二進制2D矩陣&#xff0c;現在我們必須找到所有用0填充的矩形的起點和終點。我們必須牢記&#xff0c;矩形是分開的&#xff0c;彼此之間不接觸&#xff0c;但是它們可以接觸陣列邊界。僅包含單個元素的矩形也是可能的。所以&#xff0c;如果輸入像-101110111011…

python concat_python中merge、concat用法

轉載&#xff1a;https://blog.csdn.net/ly_ysys629/article/details/73849543 參考&#xff1a;https://blog.csdn.net/stevenkwong/article/details/52540605 數據規整化&#xff1a;合并、清理、過濾 pandas和python標準庫提供了一整套高級、靈活的、高效的核心函數和算法將…

Vue使用axios無法讀取data的解決辦法

今天發現Vue中使用了axios后&#xff0c;then方法中無法讀取到data中的數據了&#xff0c;總是提示 Cannot set property xxx of undefined 上網找了一圈后發現了一下解決方法。 解決辦法1&#xff1a; methods:{tap:function(){var selfthis;axios.get(xxxxxx).then(function(…

設置博客園標題樣式

1.向博客園申請js權限 我們需要進入博客園自定義博客模板的頁面&#xff0c;向博客園管理團隊申請頁面運行js的權限。【博客園】->【設置】->【博客設置】&#xff0c;點擊頁面上的js權限申請&#xff0c;然后填寫申請的理由&#xff0c;耐心等幾分鐘&#xff0c;再刷新一…

Spring 3.1 –從數據庫加載XML配置的屬性

Spring使通過其PropertyPlaceholderConfigurer和&#xff08;Spring 3.1之前&#xff09;PropertySourcesPlaceholderConfigurer&#xff08;Spring 3.1&#xff09;從屬性文件中獲取的值易于注入。 這些類實現了BeanFactoryPostProcessor接口&#xff0c;該接口使它們能夠在初…

如何判斷PHP 是線程安全還是非線程安全的

什么是線程安全與非線程安全&#xff1f; 線程安全就是在多線程環境下也不會出現數據不一致&#xff0c;而非線程安全就有可能出現數據不一致的情況。 線程安全由于要確保數據的一致性&#xff0c;所以對資源的讀寫進行了控制&#xff0c;換句話說增加了系統開銷。所以在單線程…

關聯查詢mysql_《MySQL數據庫》關聯查詢

原標題&#xff1a;《MySQL數據庫》關聯查詢一、關聯查詢1、概念在查詢數據時&#xff0c;所需要的數據不只在一張表中&#xff0c;可能在兩張或多張表中。這個時候&#xff0c;需要同時操作這些表來查詢數據&#xff0c;即關聯查詢。關聯查詢所涉及到的表與表之間都會存在有關…

python語言語塊句的標記_《自然語言處理理論與實戰》

編輯推薦 1.講解自然語言處理的理論 2.案例豐富&#xff0c;實戰性強 3.適合自然語言處理學習的入門者 內容提要 自然語言處理是什么&#xff1f;誰需要學習自然語言處理&#xff1f;自然語言處理在哪些地方應用&#xff1f;相關問題一直困擾著不少初學者。針對這一情況&#x…

NOIP2017年11月9日賽前模擬

最后一次NOIP模擬了 題目1&#xff1a;回文數字 Tom 最近在研究回文數字。  假設 s[i] 是長度為 i 的回文數個數&#xff08;不含前導0&#xff09;&#xff0c;則對于給定的正整數 n 有&#xff1a; 以上等式中最后面的括號是布爾表達式&#xff0c;Tom 想知道S[n] mod 2333…

height百分比失效

heigh:100%失效 解決方案&#xff1a; 第一種 html, body { height: 100%; } 第二種 div { height: 100%; position: absolute; } 非定位元素的寬高百分比計算不會將 padding 計算在內&#xff0c;而定位元素會計算在內。 利用這個特性可以實現圖片左右半區點擊分別上一張圖…

Java堆空間,本機堆和內存問題

最近&#xff0c;我在和一個朋友討論為什么Java進程使用的內存比啟動Java進程時設置的最大堆多。 代碼創建的所有Java對象都是在Java堆空間內創建的&#xff0c;其大小由-Xmx選項定義。 但是一個Java進程由很多空間組成&#xff0c;而不僅僅是Java堆空間。 以下是組成Java進程…