欧美亚洲中文,在线国自产视频,欧洲一区在线观看视频,亚洲综合中文字幕在线观看

      1. <dfn id="rfwes"></dfn>
          <object id="rfwes"></object>
        1. 站長資訊網(wǎng)
          最全最豐富的資訊網(wǎng)站

          最通俗易懂的CSS浮動float屬性詳解(圖文詳細)

          本篇文章給大家?guī)砹薱ss中float浮動屬性的相關知識詳細解析,float 屬性定義元素在哪個方向浮動,下面我們就來看一下不同的屬性值會出現(xiàn)什么不同的結果,希望對大家有幫助。

          最通俗易懂的CSS浮動float屬性詳解(圖文詳細)

          CSS 浮動float屬性詳解

          很早以前就接觸過CSS,但對于浮動始終非常迷惑,可能是自身理解能力差,也可能是沒能遇到一篇通俗的教程。

          前些天終于搞懂了浮動的基本原理,迫不及待的分享給大家。

          寫在前面的話:

             由于CSS內(nèi)容比較多,沒有精力從頭到尾講一遍,只能有針對性的講解。    如果讀者理解CSS盒子模型,但對于浮動不理解,那么這篇文章可以幫助你。    小菜水平有限,本文僅僅是入門教程,不當之處請諒解!    本文以p元素布局為例。

          教程開始:

          首先要知道,p是塊級元素,在頁面中獨占一行,自上而下排列,也就是傳說中的流。如下圖:
          最通俗易懂的CSS浮動float屬性詳解(圖文詳細)
          可以看出,即使p1的寬度很小,頁面中一行可以容下p1和p2,p2也不會排在p1后邊,因為p元素是獨占一行的。

          注意,以上這些理論,是指標準流中的p。
          小菜認為,無論多么復雜的布局,其基本出發(fā)點均是:“如何在一行顯示多個p元素”。
          顯然標準流已經(jīng)無法滿足需求,這就要用到浮動。

          浮動可以理解為讓某個p元素脫離標準流,漂浮在標準流之上,和標準流不是一個層次。

          例如,假設上圖中的p2浮動,那么它將脫離標準流,但p1、p3、p4仍然在標準流當中,所以p3會自動向上移動,占據(jù)p2的位置,重新組成一個流。如圖:
          最通俗易懂的CSS浮動float屬性詳解(圖文詳細)
          從圖中可以看出,由于對p2設置浮動,因此它不再屬于標準流,p3自動上移頂替p2的位置,p1、p3、p4依次排列,成為一個新的流。又因為浮動是漂浮在標準流之上的,因此p2擋住了一部分p3,p3看起來變“矮”了。

          這里p2用的是左浮動(float:left;),可以理解為漂浮起來后靠左排列,右浮動(float:right;)當然就是靠右排列。這里的靠左、靠右是說頁面的左、右邊緣。

          如果我們把p2采用右浮動,會是如下效果:
          最通俗易懂的CSS浮動float屬性詳解(圖文詳細)
          此時p2靠頁面右邊緣排列,不再遮擋p3,讀者可以清晰的看到上面所講的p1、p3、p4組成的流。

          目前為止我們只浮動了一個p元素,多個呢?

          下面我們把p2和p3都加上左浮動,效果如圖:
          最通俗易懂的CSS浮動float屬性詳解(圖文詳細)
          同理,由于p2、p3浮動,它們不再屬于標準流,因此p4會自動上移,與p1組成一個“新”標準流,而浮動是漂浮在標準流之上,因此p2又擋住了p4。

          咳咳,到重點了,當同時對p2、p3設置浮動之后,p3會跟隨在p2之后,不知道讀者有沒有發(fā)現(xiàn),一直到現(xiàn)在,p2在每個例子中都是浮動的,但并沒有跟隨到p1之后。因此,我們可以得出一個重要結論:

          假如某個p元素A是浮動的,如果A元素上一個元素也是浮動的,那么A元素會跟隨在上一個元素的后邊(如果一行放不下這兩個元素,那么A元素會被擠到下一行);如果A元素上一個元素是標準流中的元素,那么A的相對垂直位置不會改變,也就是說A的頂部總是和上一個元素的底部對齊。

          p的順序是HTML代碼中p的順序決定的。
          靠近頁面邊緣的一端是前,遠離頁面邊緣的一端是后。
          最通俗易懂的CSS浮動float屬性詳解(圖文詳細)
          為了幫助讀者理解,再舉幾個例子。

          假如我們把p2、p3、p4都設置成浮動,效果如下:
          最通俗易懂的CSS浮動float屬性詳解(圖文詳細)
          根據(jù)上邊的結論,跟著小菜理解一遍:先從p4開始分析,它發(fā)現(xiàn)上邊的元素p3是浮動的,所以p4會跟隨在p3之后;p3發(fā)現(xiàn)上邊的元素p2也是浮動的,所以p3會跟隨在p2之后;而p2發(fā)現(xiàn)上邊的元素p1是標準流中的元素,因此p2的相對垂直位置不變,頂部仍然和p1元素的底部對齊。

          由于是左浮動,左邊靠近頁面邊緣,所以左邊是前,因此p2在最左邊。

          假如把p2、p3、p4都設置成浮動,效果如下:
          最通俗易懂的CSS浮動float屬性詳解(圖文詳細)
          道理和左浮動基本一樣,只不過需要注意一下前后對應關系。由于是右浮動,因此右邊靠近頁面邊緣,所以右邊是前,因此p2在最右邊。

          假如我們把p2、p4左浮動,效果圖如下:
          最通俗易懂的CSS浮動float屬性詳解(圖文詳細)
          依然是根據(jù)結論,p2、p4浮動,脫離了標準流,因此p3將會自動上移,與p1組成標準流。p2發(fā)現(xiàn)上一個元素p1是標準流中的元素,因此p2相對垂直位置不變,與p1底部對齊。p4發(fā)現(xiàn)上一個元素p3是標準流中的元素,因此p4的頂部和p3的底部對齊,并且總是成立的,因為從圖中可以看出,p3上移后,p4也跟著上移,p4總是保證自己的頂部和上一個元素p3(標準流中的元素)的底部對齊。

          至此,恭喜讀者已經(jīng)掌握了添加浮動,但還有清除浮動,有上邊的基礎清除浮動非常容易理解。

          經(jīng)過上邊的學習,可以看出:元素浮動之前,也就是在標準流中,是豎向排列的,而浮動之后可以理解為橫向排列。

          清除浮動可以理解為打破橫向排列。

             清除浮動的關鍵字是clear,官方定義如下:       語法:     clear : none | left | right | both     取值:     none  :  默認值。允許兩邊都可以有浮動對象     left   :  不允許左邊有浮動對象     right  :  不允許右邊有浮動對象     both  :  不允許有浮動對象

          定義非常容易理解,但是讀者實際使用時可能會發(fā)現(xiàn)不是這么回事。
          定義沒有錯,只不過它描述的太模糊,讓我們不知所措。

          根據(jù)上邊的基礎,假如頁面中只有兩個元素p1、p2,它們都是左浮動,場景如下:
          最通俗易懂的CSS浮動float屬性詳解(圖文詳細)
          此時p1、p2都浮動,根據(jù)規(guī)則,p2會跟隨在p1后邊,但我們?nèi)匀幌M鹥2能排列在p1下邊,就像p1沒有浮動,p2左浮動那樣。

          這時候就要用到清除浮動(clear),如果單純根據(jù)官方定義,讀者可能會嘗試這樣寫:在p1的CSS樣式中添加clear:right;,理解為不允許p1的右邊有浮動元素,由于p2是浮動元素,因此會自動下移一行來滿足規(guī)則。

          其實這種理解是不正確的,這樣做沒有任何效果??葱〔硕ㄕ摚?
          對于CSS的清除浮動(clear),一定要牢記:這個規(guī)則只能影響使用清除的元素本身,不能影響其他元素。

          怎么理解呢?就拿上邊的例子來說,我們是想讓p2移動,但我們卻是在p1元素的CSS樣式中使用了清除浮動,試圖通過清除p1右邊的浮動元素(clear:right;)來強迫p2下移,這是不可行的,因為這個清除浮動是在p1中調(diào)用的,它只能影響p1,不能影響p2。

          根據(jù)小菜定論,要想讓p2下移,就必須在p2的CSS樣式中使用浮動。本例中p2的左邊有浮動元素p1,因此只要在p2的CSS樣式中使用clear:left;來指定p2元素左邊不允許出現(xiàn)浮動元素,這樣p2就被迫下移一行。
          最通俗易懂的CSS浮動float屬性詳解(圖文詳細)
          那么假如頁面中只有兩個元素p1、p2,它們都是右浮動呢?讀者此時應該已經(jīng)能自己推測場景,如下:
          最通俗易懂的CSS浮動float屬性詳解(圖文詳細)
          此時如果要讓p2下移到p1下邊,要如何做呢?

          同樣根據(jù)小菜定論,我們希望移動的是p2,就必須在p2的CSS樣式中調(diào)用浮動,因為浮動只能影響調(diào)用它的元素。

          可以看出p2的右邊有一個浮動元素p1,那么我們可以在p2的CSS樣式中使用clear:right;來指定p2的右邊不允許出現(xiàn)浮動元素,這樣p2就被迫下移一行,排到p1下邊。
          最通俗易懂的CSS浮動float屬性詳解(圖文詳細)
          至此,讀者已經(jīng)掌握了CSS+p浮動定位基本原理,足以應付常見的布局。

          其實,萬變不離其宗,只要讀者用心體會,再復雜的布局都可以通過總結的規(guī)律搞定。

          (學習視頻分享:css視頻教程)

          贊(0)
          分享到: 更多 (0)
          網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號