CSS浮動Float 基礎知識及相容性問題

2021-07-23 05:36:05 字數 1473 閱讀 8695

先說一下浮動的基本定義:浮動的框可以向左或向右移動,直到它的外邊緣碰到父級邊界或另乙個浮動框的邊框為止。由於浮動框不在文件流中,所以文件的普通流中的塊框表現得就像浮動框不存在一樣。那麼就要說一下文件流了,文件流是文件中可顯示物件在排列時所占用的位置(可以認為各個元素原本預設的位置)。那我們在實際應用**會遇到這種問題呢。例如我們現在需要把幾個塊級元素放在一排,我們可以使用display:inline;但是這樣我們無法改變高度,也可以使用display:inline-block;但是這樣的話也存在換行符被解析,ie6、ie7不相容的問題。現在可以使用float來修飾,下面我們說一下不同的實現方法並對其進行說明:

要想使用float,先來簡單介紹一下

float浮動: 

1、塊在一排顯示(使塊元素在一排顯示)

2、內聯支援寬高(使內聯元素支援設定高度)

3、預設內容撐開寬度(沒有寬度自動撐開)前幾個與inline-block效果相同

4、脫離文件流(浮動元素有可能會覆蓋正常文件流中內容)

5、提公升層級半層(浮動會擠開元素內的內容)

float:left | right | none | inherit;(左,右,沒有浮動,與父類相同)

clear:left | right | both | none | inherit;元素的某個方向上不能有浮動元素(左,右,左右兩邊,無,繼承父類)

如果兩個元素乙個帶float乙個不帶,帶浮動的會浮動半層,飄起來覆蓋住另乙個元素。但在使用過程中浮動也會帶起意想不到的問題:如果父類包含乙個浮動元素,浮動元素並不會撐開父類造成意想不到的問題,下面有幾種解決辦法:

1.加高(給父類加乙個固定高度)

問題:擴充套件性不好(如果使高度,接下來如果內容更改,也必須同時更改父類的高)

2.父級浮動(給父類也加上浮動)

問題:頁面中所有元素都加浮動,margin左右自動失效(floats bad !)

3.inline-block 清浮動方法:

問題:margin左右自動失效;

4.空標籤清浮動(定義乙個空div,並清除左右浮動)

問題:ie6 最小高度 19px;(解決後ie6下還有2px偏差)

5.br清浮動(給浮動元素後加上br標籤,並清除左右浮動)

問題:不符合工作中:結構、樣式、行為,三者分離的要求。

6.after偽類 清浮動方法(現在主流方法)

.clear:after

.clear

after偽類: 元素內部末尾新增內容;

:after ie6,7下不相容

zoom 縮放 

a、觸發 ie下 haslayout,使元素根據自身內容計算寬高。

b、ff 不支援;

7.overflow:設定是否顯示滾動條;

問題:需要配合 寬度 或者 zoom 相容ie6 ie7;

overflow:  scroll | auto | hidden;

overflow:hidden;溢位隱藏(裁刀!)

css基礎 float浮動

doctype html html lang en head meta charset utf 8 title float title style body per red style head body div class per div class red div 層疊樣式表 英文全稱 casc...

CSS基礎知識總結之浮動詳解

前言 day4主要講述了乙個重點,那就是浮動 其中包含,什麼是浮動?浮動的作用語法及浮動的清除等 1 css的三種布局機制 css 提供了 3 種機制來設定盒子的擺放位置,分別是普通流 標準流 浮動和定位,其中 1 普通流 標準流 常用元素 div hr p h1 h6 ul ol dl form ...

CSS入門基礎知識(十三) 浮動(一)

網頁布局的本質 用css來擺放盒子。把盒子擺放在相應的位置。css提供了三種傳統布局方式 1 普通流 標準流 2 浮動 3 定位 所謂的標準流 就是標籤按照規定好預設方式排列 1 塊級元素會獨佔一行,從上向下順序排列 2 行內元素會按照順序,從左到右順序排列,碰到父元素邊緣則自動換行 3 常用元素 ...