浮動相關的細細碎碎

2021-08-03 12:13:40 字數 2924 閱讀 8012

前言:今天主要是整理一下浮動和清除浮動的相關的內容,也順便理一下overflow和clear的相關。清除浮動的方法主要也是看了網上的總結,然後自己實現了一下。
一、什麼是標準文件流標準文件流是指不使用一些奇奇怪怪的屬性(預設狀態)的時候,文件中的元素會自動從左往右、從上往下的流式排版。

標準文件流中的兩種元素:塊級元素和行內元素

塊級元素

1. 獨佔一行

2. 可以設定寬高

3. 不設定寬高的時候,預設寬度和父級元素一樣

行內元素

1. 與其他元素併排顯示

2. 不可以設定寬高(記住啊)

注:塊級元素和行內元素可以使用display:block,display:inline等來切換

(具體參見關於div和span部分的總結)

二、浮動(脫離了標準文件流)

如果某個div設定了浮動,那個該盒子就會脫離標準文件流。簡單的說如果class名為float的div設定了浮動,那麼可以把該盒子「視而不見」,該盒子不再占用標準文件流中的位置。

具體來說,如下:

**:

type="text/css">

.div1

.div2

.div3

.div4

style>

head>

class="div1">div1div>

class="div2">div2div>

class="div3">div3div>

class="div4">div4div>

body>

case1:讓div2左浮動

解釋:對「div2」視而不見,div3和div4從div1往下依次排列(但是被div2擋住了,雖然對div2視而不見,但是它還是存在的)。

case2:讓div2右浮動

解釋:div3,div4仍然對div2視而不見,依次從div1往下排。但是這次是右浮動,所以div2沒有把div3,div4遮住。

case3:讓div2和div3同時浮動:

解釋:對div2和div3視而不見,div4從div1往下排(這裡div4高度沒設好,完全被遮住了。)同時,div2和div3依次往左排。

三、清除浮動

先說明一下關於clear的知識點

clear的語法:

語法很簡單,那麼問題來了:

下面兩個div都設定了左浮動,請問怎麼把div2拉下來,讓他和div1一樣左對齊呢?

口訣就是(我也是看別人的):clear這個規則只能影響使用清除浮動的元素本身。

拿這個例子來說,現在是div2需要清除浮動,所以應該是給div2使用clear(誰要清除浮動誰來用clear)。

進一步的,是不允許div2左邊有浮動對吧,所以答案應該是給div2加clear:left。

下面結合乙個具體的例子,分別說明不同的清除浮動的方法。

頁面原始格式:

lang="en">

charset="utf-8">

title>

.outer

.inner

.footer

style>

head>

class="outer">

class="inner">

div>

class="inner">

div>

class="inner">

div>

div>

class="footer">

div>

body>

html>

具體實現就不寫在這裡了,原部落格寫的很清楚。

就是我還沒有解決的問題是:為什麼我的demo套用某些歌方法就不奏效,不知道是我套用的不對還是怎麼滴。貌似只可以用clear:both來清除浮動。

先粘一下我舉的例子:

type="text/css">

#content

#left

#right

#bottom

style>

head>

id="content">

id="left">leftdiv>

id="right">rightdiv>

id="bottom">

div>

div>

body>

給bottom新增clear:both可以清除浮動:

但是使用overflow:hidden,after偽元素這些個方法就不適用了。我個人覺得是因為我這裡就乙個div裡面三個小div,就相當於我前面針對clear舉得那個例子。而原博裡面的demo是兩個並列的div,第乙個裡面有浮動元素。貌似不太一樣,但是具體原因我也說不清楚,可能還是不理解清除浮動的具體原理吧。。之後這個問題解決了再來追加吧。

清理浮動相關

我們將現有已知的清楚浮動元素方法羅列下 採用乙個html標籤,以及css的clear屬性,來手工清理浮動 採用偽類 after,動態建立乙個塊元素,設定 clear 屬性,清理之前的浮動元素 採用css overflow 非 visible 值 overflow auto overflow hidd...

浮動相關知識及清浮動方法

先了解一下文件流的概念,所謂文件流,就是指文件中可以顯示的物件在排列是所佔的位置。而浮動就是 使我們的元素脫離正常文件流,按照指定方向發生移動,直到碰到它的父元素邊界或另乙個浮動元素的邊界 浮動是讓元素水平方向移動,不能上下移動 浮動屬性 float left 左浮動 float right 右浮動...

STL的L細細品

stl是英文standard template library的簡寫,中文名標準模板庫。我們今天不說它的容器呀,迭代器呀,匹配器呀,演算法呀這些,單說它的library。噢library呀!庫嘛。我哪個六歲半的學習程式設計的小兒子也知道。不就是庫嘛,有什麼好說的。然而,此庫非彼庫。stl的l雖然也是...