摘要:對于的清除浮動,一定要牢記這個規則只能影響使用清除的元素本身,不能影響其他元素。本例中的左邊有浮動元素,因此只要在的樣式中使用來指定元素左邊不允許出現浮動元素,這樣就被迫下移一行。對于右浮動也亦是如此。
塊級元素與行內元素,怎么用CSS控制它們、以及如何合理的使用它們
它們的定義
1.塊級元素:每個塊級元素默認占一行高度,若有塊級元素則同行無法再添加其他元素(float浮動除外)
特點:
高度行高以及外邊距內邊距都可控制
寬度默認100%
可以容納內聯元素及塊元素
2.行內元素:可以和其他元素都在一行上.
特點:
寬度就是它的文本或圖片的寬度,不可改變
內聯元素只能容納文本或者其他的內聯元素
設置寬度width無效
設置高度height無效,可通過line-height來設置
設置margin只有左右有效,上下無效
設置padding只有左右padding有效,上下無效
3.行內塊狀元素:綜合了行內元素與塊狀元素的特性,但是各有取舍
特點:
不自動換行
能夠識別寬高
默認排列方式從左到右
4.塊級元素有哪些:
div | dl(定義列表) | h1(h開頭系列) | hr | menu | ol | p | table | ul
5.行內元素有哪些:
a | b | br | em | i | img | input | label | select | span | strong
sub | textarea | u
6.行內塊狀元素有哪些:
button | del | iframe | ins | map | object
1.首先要知道,div是塊級元素,在頁面中獨占一行,自上而下排列,也是傳說中的流
由此可以看出,即使div1的寬度很小,頁面中一行可以容下div1和div2,div2也不會排在div1后面,顯然標準流已
經法滿足需求,這就要用到浮動
浮動可以理解為讓某個div元素脫離標準流,漂浮在標準流之上,和標準流不是一個層次。
假設上圖中的div2浮動,那么它將脫離標準流,但是div1,div3,div4仍然在標準流當中所以div3會自動向上移動,占據div2的位置,重新組成一個流。
從圖中可以看出,div2不再屬于標準流,div3自動上移頂替div2的位置,div1,div3,div4依次排列,成為新的流,又因為浮動是漂浮在標準流上面的,所以div2擋住了一部分的div3,所以div3看起來變矮了。
如果把div2右浮動,我們看的是這個效果:
下面我們把div2和div3都加上左浮動,效果如圖:
同理,由于div2,div3浮動之后,div3會跟隨在div2之后,但是從以上的每個例子中,div2都是浮動的,但是卻沒有跟在div1之后,因此可以得到一個重要結論:
div元素A是浮動的,如果A元素上一個元素也是浮動的,那么A元素會跟隨在上一個元素的后邊(若是一行放不下的情況,則會被擠到下一行);如果A元素上一個元素是標準流中的元素,那么A的相對垂直位置不會改變,也就是說A的頂部是和上一個元素的底部對齊。
假如我們把div2,和div4左浮動,效果圖如下:
結論依然是:div2,div4浮動,脫離了標準流,因此div3將會自動上移,與div1組成標準流。div2發現上一個元素是標準流的元素,因此div2相對垂直位置不變,與div1底部對劉。div4發現上一個元素div3也是標準流中的元素,因此div4的頂部與div3的底部對齊。
恭喜你已經掌握了添加浮動.
現在我們來聊一下清除浮動,有上邊的基礎清除浮動非常理解
語法:clear: none | left | right | both
none:允許兩邊都有可以有浮動對象
left:不允許左邊有浮動對象
right:不允許右邊有浮動對象
both:不允許有浮動對象
根據上邊的基礎,假如頁面中只有兩個元素div1,div2,他們都是左浮動,場景如下:
這時候使用清除浮動,根據官方定義,讀者可能會嘗試這樣寫,在div1中的樣式中添加clear:right,理解為不允許div1的右邊有浮動元素,由于div2是浮動元素,因此會自動下移一行來滿足規則。
其實這種理解是不正確的,這樣做沒有任何效果。
對于CSS的清除浮動(clear),一定要牢記:這個規則只能影響使用清除的元素本身,不能影響其他元素。
怎么理解呢?就拿上邊的例子來說,我們是想讓div2移動,但我們卻是在div1元素的CSS樣式中使用了清除浮動,試圖通過清除div1右邊的浮動元素 (clear:right;)來強迫div2下移,這是不可行的,因為這個清除浮動是在div1中調用的,它只能影響div1,不能影響div2。
根據定論,要想讓div2下移,就必須在div2的CSS樣式中使用浮動。本例中div2的左邊有浮動元素div1,因此只要在div2的CSS樣式中使用clear:left;來指定div2元素左邊不允許出現浮動元素,這樣div2就被迫下移一行。
對于右浮動也亦是如此。
參考:http://www.cnblogs.com/iyangy...
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/117341.html
摘要:浮動框旁邊的行框被縮短,從而給浮動框留出空間,行框圍繞浮動框。不浮動的浮動的三浮動之于塊浮動的框可以向左或向右移動,直到它的外邊緣碰到包含框或另一個浮動框的邊框為止。? 一、前言 ? 浮動元素以脫離標準流的方式來實現元素的向左或向右浮動,并且浮動元素還是在原來的行上進行浮動的。float浮動屬性的四個參數:left:元素向左浮動;right:元素向右浮動;none:默認值,元素不浮動;i...
摘要:清除浮動并不是說讓浮動元素回到文檔流清除浮動只會改變改元素自身的位置,并且只針對排在該元素前面的元素。 我在做頁面布局的時候,多多少少總會受到來自浮動的困擾,因此專門通過實踐來總結一下浮動與清除浮動。 首先總結幾個基礎的概念: 浮動:設置浮動的元素會脫離文檔流,不會影響塊元素的布局,但是會影響內聯元素的排列[通常是文本]; 文檔流:在文檔流中,塊元素會單個元素獨占一行 接下來我們通過實...
摘要:清除浮動并不是說讓浮動元素回到文檔流清除浮動只會改變改元素自身的位置,并且只針對排在該元素前面的元素。 我在做頁面布局的時候,多多少少總會受到來自浮動的困擾,因此專門通過實踐來總結一下浮動與清除浮動。 首先總結幾個基礎的概念: 浮動:設置浮動的元素會脫離文檔流,不會影響塊元素的布局,但是會影響內聯元素的排列[通常是文本]; 文檔流:在文檔流中,塊元素會單個元素獨占一行 接下來我們通過實...
摘要:清除浮動并不是說讓浮動元素回到文檔流清除浮動只會改變改元素自身的位置,并且只針對排在該元素前面的元素。 我在做頁面布局的時候,多多少少總會受到來自浮動的困擾,因此專門通過實踐來總結一下浮動與清除浮動。 首先總結幾個基礎的概念: 浮動:設置浮動的元素會脫離文檔流,不會影響塊元素的布局,但是會影響內聯元素的排列[通常是文本]; 文檔流:在文檔流中,塊元素會單個元素獨占一行 接下來我們通過實...
摘要:清除浮動并不是說讓浮動元素回到文檔流清除浮動只會改變改元素自身的位置,并且只針對排在該元素前面的元素。 我在做頁面布局的時候,多多少少總會受到來自浮動的困擾,因此專門通過實踐來總結一下浮動與清除浮動。 首先總結幾個基礎的概念: 浮動:設置浮動的元素會脫離文檔流,不會影響塊元素的布局,但是會影響內聯元素的排列[通常是文本]; 文檔流:在文檔流中,塊元素會單個元素獨占一行 接下來我們通過實...
閱讀 1336·2021-11-25 09:43
閱讀 1894·2021-11-12 10:36
閱讀 5966·2021-09-22 15:05
閱讀 3480·2019-08-30 15:55
閱讀 2005·2019-08-26 14:06
閱讀 3640·2019-08-26 12:17
閱讀 492·2019-08-23 17:55
閱讀 2448·2019-08-23 16:23