淺談css中浮動和清除浮動帶來的影響

 

有很多時候,我們都會用到浮動,而我們有時候對浮動只是一知半解,卻不是太清楚它到底是怎么回事,不知道各位有沒有和我一樣的感覺,只知道用它,卻不知道它到底是怎么回事,所以,在學習的過程中,就要把一個概念不是很清晰的問題把它弄清楚了,便于我們以后的使用。早些時候,W3C規(guī)定出來的浮動實際并不是為了布局所用,當時是為了做文字環(huán)繞才使用到浮動,后來有人發(fā)現用它來做布局也挺不錯啊,但是,用到了浮動,是要付出一定的代價的,我們就必須要處理浮動所帶來的影響。接下來我們就聊聊浮動的那些事兒,此分享僅供參考,有什么不足的地方希望各位博友指正!
 
首先我們要知道,css中的塊級元素在頁面中是獨占一行的,自上而下排列,也就是我們所說的流,通常我們稱之為標準流,在這里我以div為例,div是塊級元素,如下圖。
可很清楚的看得到,div是獨自占用一行的,div2和div3是不會排在div1后面,這是在標準流中的理論,但是,有些時候,我們的需求不僅僅是這樣,我們想著如何在一行中顯示多個div元素,所以,標準流已經不能滿足我們的需求,這個時候我們就需要用到浮動,我們這樣理解,浮動就是讓這個div元素脫離標準流,漂浮在標準流的上面?,F在,我給div2加上一個向左的浮動,給個fload:left;然后來看看會發(fā)生什么,看圖吧,上效果低千言萬語!
如圖可以看出,黃色的div不見了,其實它并不是不見了,而是跑到了綠色盒子的下面,這個時候我們就要想到了,因為我們給了div2向左浮動,div2已經脫離了標準流,相當于它已經和黃色盒子、紅色盒子不在一個層次上,所以,黃色盒子就會頂上去跑到綠色盒子的下面,占據著綠色盒子的位置,就是我們現在看到的效果。好,理解了上面的,讓我們接著來,現在我給黃色盒子和綠色盒子都加上左浮動,再看看效果:
 
現在我們看到div2和div3都脫離的標準流,此時,div3發(fā)現div2也是浮動的,所以div3就會跟隨著div2之后,而div2發(fā)現上邊的元素div1是標準流中的元素,因此div2的相對垂直位置不會改變,頂部仍然和div1元素的底部對齊,由于是左浮動,所以,左邊的div2在最左邊。
接下來我們來看看不同的:
如果我把div2和div3都設置成右浮動的話,看圖如下:
現在我們可以看到,div2和div3都漂浮到了最右邊。但是有一點我們可以發(fā)現,因為是向右浮動,右邊是最前,所以div2會第一個向右浮動,div3隨著緊跟div后面向右浮動,這個時候就很容易的理解了,由于div1是在標準流上,它是獨自占用一行的,所以div2和div3不會跑到上面去。
 
為了方便理解,讓我們再看一個例子,如圖:

 

現在我有四個div,現在他們分別沒有浮動,都在標準流里,每個div獨占一行,現在我給div2和div4分別加一個左浮動,然后給div3增加50px的寬度,便于理解,來看看效

我想了解如何學習

姓名:
手機:
留言: