CSS清除float浮動的常用幾種方法

2021-08-01 20:11:59 字數 3771 閱讀 9453

一、關於float浮動及其產生

在網頁布局排版中我們會經常用到float元素,float定義元素往哪個方向浮動,使元素脫離文件流,按照指定方向發生移動,遇到父級邊界或者相鄰的浮動元素停了下來

。它有四個屬性值:

none (預設值,

元素不浮動,並會顯示在其在文字中出現的位置

)。left (

元素向左浮動

) 。right (元素向右浮動)。

inherit (規定應該從父元素繼承 float 屬性的值) 。

先來看看浮動的效果,為了讓兩個塊級元素併排顯示,我們使用了float屬性

<

head>

<

metacharset="utf-8">

<

title>浮動

title>

<

style>body>div

.div1

.div2

style>

head>

<

body>

<

div>

<

divclass="div1">我是div1

div>

<

divclass="div2">我是div2

div>

div>

body>

效果:

div1和div2都是向左浮動,達到了我們併排排列的效果但是我們也看到了float也產生了很多***:父元素邊框塌陷,
背景不能顯示、不能設定padding和margin等等。所以這就是我們要學習消除浮動影響的原因。
二、消除浮動的方法

1.clear清除法

在浮動元素後面新增乙個空的div。

<

head>

<

metacharset="utf-8">

<

title>浮動

title>

<

style>body>div

.div1

.div2

.empty

style>

head>

<

body>

<

div>

<

divclass="div1">我是div1

div>

<

divclass="div2">我是div2

div>

<

divclass="empty">

div>

div>

body>

效果:

2.給父元素設定高度

在css中父div中加height:200px;效果為:

這個方法是最簡單的,但是會導致我們**的擴充套件性變差,因為我們的子元素一旦變化父元素也要變化,這樣就變得很不靈活了,所以在專案中我們不一般不用這種方法。

3.讓父元素也浮動

在父元素div中加float:left;但是這種方法的缺點是要給每乙個父元素都加float比較麻煩,如果父元素多的話那就更麻煩了,同時浮動多了容易出問題,所以一般也不推薦這種方法。

4.overflow:hidden

這個方法非常簡單方便,在父元素中加overflow:hidden;(body>

div)這樣可以解決邊框塌陷的問題,但是要注意這個方法在下拉列表框場景下會遇到新的問題,並且還要考慮瀏覽器的相容問題。

5.after偽類清除法

這個方法是最好的,就出了寫法稍微麻煩一點點,沒有什麼***。寫法如下:

.father:after

下面來看我們上面的**用after偽類清除,同樣達到了我們的目的:

<

style>body>divbody div:after

.div1

.div2

style>

head>

<

body>

<

div>

<

divclass="div1">我是div1

div>

<

divclass="div2">我是div2

div>

div>

body>

效果:

三、總結

CSS清除浮動 清除float浮動

css清除浮動方法集合 一般浮動是什麼情況呢?一般是乙個盒子裡使用了css float浮動屬性,導致父級物件盒子不能被撐開,這樣css float浮動就產生了。浮動產生樣式效果截圖 本來兩個黑色物件盒子是在紅色盒子內,因為對兩個黑色盒子使用了float浮動,所以兩個黑色盒子產生了浮動,導致紅色盒子不...

CSS清除浮動 清除float浮動

css清除浮動方法集合 一般浮動是什麼情況呢?一般是乙個盒子裡使用了css float浮動屬性,導致父級物件盒子不能被撐開,這樣css float浮動就產生了。浮動產生樣式效果截圖 本來兩個黑色物件盒子是在紅色盒子內,因為對兩個黑色盒子使用了float浮動,所以兩個黑色盒子產生了浮動,導致紅色盒子不...

CSS清除浮動 清除float浮動

一般浮動是什麼情況呢?一般是乙個盒子裡使用了css float浮動屬性,導致父級物件盒子不能被撐開,這樣css float浮動就產生了。浮動產生樣式效果截圖 本來兩個黑色物件盒子是在紅色盒子內,因為對兩個黑色盒子使用了float浮動,所以兩個黑色盒子產生了浮動,導致紅色盒子不能撐開,這樣浮動就產生了...