浮動float 你肯定會遇到的疑惑

2022-04-21 22:30:10 字數 2462 閱讀 4614

假如4個ul li 都float:left ,那麼與ul是兄弟節點的 img標籤, 如果放了一張圖,那麼請問,這張圖會向左邊頂嗎,直到被li裡的文字所 遮住?

1.19號 觀察發現:

我把文字刪掉,證明並不是文字環繞而造成img不被綠色盒子覆蓋的。

下圖,我只改動一點:把一樣寬高大小的img換成乙個有顏色的div,發現,黃色的div並不是在上面img的位置

··在div裡寫幾個文字,文字必須環繞浮動元素沒錯··

**將img放進div裡,效果和圖1 一樣。 **

!!!我先把div標籤選擇器弄精準點,防止影響其他div 。但是要注意:新加的這個

盒子 它是繼承父級div的寬的,然後高度是被盒子撐開的高度。所以它的寬並不只有被img撐起來那點寬,假如我給aaa加點個黃色,你可以觀察下變化

假如我繼續給這個div改下寬高,使它變小,小到只能剛好裝下img的大小,那麼效果就變了,去到了浮動元素的下面

我把div的盒子寬度改長一下

所以我懷疑img和文字都是要環繞浮動元素的!!!

接著,img屬於行內塊元素,所以我又**懷疑是不是 只要是行內塊元素 都會環繞浮動元素呢? **

上圖證明:確實是這樣

找了好久,網上都沒有我想要的答案 。規律總結。直到-----

那好,現在隨便找乙個圖 都能驗證上面的結論

分析上圖,img是浮動元素, 右邊是ul li 塊元素.

為什麼這個overfloat:hidden 一點作用都沒有?

不是說magrin:0 auto 對於脫標的元素不會起作用嗎 , 怎麼magin-left:-140px ;還能 讓脫標的元素移動?

**答:magrin:0 auto 中的auto是需要有乙個參照元素(例如父div)它才能 給你自動算出居中的。而脫標的元素已經漂浮了,它周圍已經沒有任何參照物了。所以auto無法起作用 。無論是哪一層,magin-left:-140px 都相對它自己那一層而起作用 **

··下面這個能讓子盒子去右邊嗎?··

···document

.fu

.zi

···!(

自己總結:因為子盒子 是塊元素,本來就佔據一行,本來子盒子右邊就是有margin的值的,你設定margin-right: 0px; 右邊也是一樣還存在margin

!(··答案 是 不能: 但是!!當你用: magin-left:auto; 卻能可以讓子盒子去右邊(相當於,auto是 系統讓盒子往右邊衝,直到衝不動)··

或者用 float:right 也可

如果父div沒有高度,就不能給浮動的子元素乙個容器

如果乙個元素要浮動,那麼其祖先元素一定要有高度,有高度的盒子,才能管住浮動。只要浮動在乙個有高度的盒子中,那麼這個浮動就不會影響後面的浮動元素,這樣消除浮動了。

overflow:hidden;

overflow:hidden:溢位隱藏,所有溢位邊框的內容,都要隱藏掉。

本意就是清除溢位到盒子外面的文字。但是卻發現它能做偏方。

乙個父親不能被自己浮動的兒子,撐出高度。但是,只要給父親加上overflow:hidden; 那麼,父親就能被兒子撐出高了。這是乙個偏方。

首頁這個也是關於margin研究很好的 補充

float清除浮動

影響 浮動會使元素具有塊級元素和行內元素的特點 即內聯塊的特點 讓塊元素在同一行顯示。內聯塊 inline block 和浮動 float left right none 元素脫離文件流,按照浮動方向移動,遇到父級邊界或者相鄰浮動元素停住 但是無論哪種方式都需要做一些處理 去除inline bloc...

float清除浮動

在非ie瀏覽器下,當容器的高度為auto,且容器的內容中有浮動 float為left或right 的元素,在這種情況下,容器的高度不能自動伸長以適應內容的高度,使得內容溢位到容器外面而影響 甚至破壞 布局的現象。即父級物件盒子無法被撐開,這個現象叫浮動溢位,為了防止這個現象的出現而進行的css處理,...

Float浮動布局

什麼是浮動布局?浮動可以設定元素,脫離正常的文件流,向右或者向左,靠近父元素的邊緣或者是設定了浮動的其他的元素的邊緣靠攏。比如,我們使用div等塊標籤的時候,它們都是獨佔一行,但是很多時候要將多個div併排放置,這種情況就可以使用浮動布局。浮動可以那些問題?使用浮動布局之後 這裡也是可以使用浮動解決...