CSS 布局機制之浮動

2021-10-23 00:00:38 字數 2322 閱讀 3175

網頁布局的核心就是使用css來擺放盒子
css 提供了3 種機制來設定盒子的擺放位置,分別是普通流(標準流)、浮動定位,其中:

普通流(標準流) 塊級元素會獨佔一行,從上向下順序排列; 常用元素:div、hr、p、h1~h6、ul、ol、dl、form、table

行內元素會按照順序,從左到右順序排列,碰到父元素邊緣則自動換行; 常用元素:span、a、i、em等

浮動 讓盒子從普通流中浮起來,主要作用讓多個塊級盒子一行顯示。

定位 將盒子定在瀏覽器的某乙個位置。

讓多個盒子(div) 水平排列成一行

實現盒子的左右對齊

雖然行內塊(inline-block) 也可以實現多個元素一行顯示,但是元素中間會有縫隙,並且不能實現盒子的左右對齊。

概念:

元素的浮動是指設定了浮動屬性的元素會:

脫離標準普通流的控制

移動到指定位置。

作用:

讓多個盒子(div)水平排列成一行,使得浮動成為布局的重要手段。

可以實現盒子的左右對齊等等…

浮動最早是用來控制,實現文字環繞的效果。

選擇器
屬性值

描述none

元素不浮動(預設值)

left

元素向左浮動

right

元素向右浮動

特點說明

浮加了浮動的盒子是浮起來的,漂浮在其他標準流盒子的上面。

漏加了浮動的盒子是不佔位置的,它原來的位置漏給了標準流的盒子。

特特別注意:浮動元素會改變display屬性, 類似轉換為了行內塊,但是元素之間沒有空白縫隙

1). 浮動元素與父盒子的關係

子盒子的浮動參照父盒子對齊 不會與父盒子的邊框重疊,也不會超過父盒子的內邊距

2). 浮動元素與兄弟盒子的關係

在乙個父級盒子中,如果前乙個兄弟盒子是:

·浮動的,那麼當前盒子會與前乙個盒子的頂部對齊;

·普通流的,那麼當前盒子會顯示在前乙個兄弟盒子的下方。

3). 注意

·浮動只會影響當前的或者是後面的標準流盒子,不會影響前面的標準流。

·如果乙個盒子裡面有多個子盒子,如果其中乙個盒子浮動了,其他兄弟也應該浮動。防止引起問題

·因為父級盒子很多情況下,不方便給高度,但是子盒子浮動就不占有位置,最後父級盒子高度為0,就影響了下面的標準流盒子。

·由於浮動元素不再占用原文件流的位置,所以它會對後面的元素排版產生影響。

·準確地說,並不是清除浮動,而是清除浮動後造成的影響

清除浮動主要為了解決父級元素因為子級浮動引起內部高度為0 的問題。清除浮動之後, 父級就會根據浮動的子盒子自動檢測高度。父級有了高度,就不會影響下面的標準流了

選擇器 clear 清除
屬性值

描述left

不允許左側有浮動元素(清除左側浮動的影響)

right

不允許右側有浮動元素(清除右側浮動的影響)

both

同時清除左右兩側浮動的影響

什麼時候清除浮動

父級沒高度

子盒子浮動了

影響下面布局了,我們就應該清除浮動了。

清除方式方式

優點缺點

額外標籤法(隔牆法)

通俗易懂,書寫方便

新增許多無意義的標籤,結構化較差。

父級overflow:hidden;

書寫簡單

父級overflow:hidden; 書寫簡單 溢位隱藏

父級after偽元素

結構語義化正確

由於ie6-7不支援:after,相容性問題

父級雙偽元素

結構語義化正確

由於ie6-7不支援:after,相容性問題

css布局之浮動

css布局中說到浮動,浮動的框可以向左或向右移動,直到它的外邊緣碰到包含框或另乙個浮動 框的邊框為止。由於浮動框不在文件的普通流中,所以文件的普通流中的塊框表現得就像浮動框不存在一樣。一float屬性的定義和用法 float屬性 設定元素浮動 可能的值 none 不浮動,在文件流內,預設 left ...

CSS之浮動布局

1.什麼是浮動 在我們布局的時候用到的一種技術,能夠方便我們進行布局,通過讓元素浮動,我們可以使元素在水平上左右移動,再通過margin屬性調整位置。2.浮動的原理 使當前元素脫離普通流,相當於浮動起來一樣,浮動的框可以左右移動,直至它的外邊緣遇到包含框或者另乙個浮動的邊緣 3 浮動的生成 使用cs...

CSS布局之浮動 清除浮動

1.2 浮動 float 小結 1.3 浮動 float 的應用 重要 1.4 浮動 float 的擴充套件 2.清除浮動 2.4 清除浮動總結 概念 元素的浮動是指設定了浮動屬性的元素會 脫離標準普通流的控制 移動到指定位置。作用 讓多個盒子 div 水平排列成一行,使得浮動成為布局的重要手段。可...