### 一. 有無浮動的呈現效果
```
<div class="parent">
<div class="one"></div>
<div class="two"></div>
</div>
```
```
.parent {
border: 1px solid black;
}
.one {
width: 100px;
height: 100px;
background: aquamarine
}
.two {
width: 200px;
height: 100px;
background: yellowgreen;
}
```
此時沒有浮動時,呈現的效果如圖:

給`div.one`加上浮動效果:
```
.one {
width: 100px;
height: 100px;
float: left;
background: aquamarine
}
```
此時顯示效果:

此時`.one`浮動,`.two`向上占據位置,因此有100px被.one遮住
### 二. 浮動元素margin關系
1.div.one浮動后, 未浮動的`.two`的margin-left不會相對于`.one`,而是父元素,如:
```
.one {
margin-left: 20px;
}
.two {
margin-left: 130px;
}
```

2.而當`.two`也設置為浮動時,margin-left相對于`.one`,而不是父元素,如:
```
.two {
float: left;
margin-left: 20px;
}
```

此時發現,因為`.one`, `.two`都浮動了,所以div變成了一個"空"容器,只剩下邊框。
3.我們再加上一個子元素`.three`, 各方面數值與`.three`一致:
```
.three {
width: 100px;
height: 100px;
background: burlywood;
}
```
此時,因為`.three`沒有設置浮動,而前兩個div又"浮"了起來,所以會貼著父div,如圖:

并且.three有一部分內容被.two遮住。
那么我們現在將`three`也設置成浮動效果會發生什么呢?
```
.three {
float: left;
}
```

與我們猜測的一樣,`.three`會貼著`.two`,并且由于三個div都浮起來, 父元素無法被撐起來,那么如何清除浮動呢,下章再見。
- 空白目錄
- 1. css選擇器
- 1.1 基礎選擇器
- 1.2 偽類
- 1.3 first-child與:first-of-type的區別
- 1.4 nth-child(:not())與nth-of-type(:not())
- 1.5 屬性選擇器
- 2. html標簽分類&css樣式繼承
- 2.1 html標簽分類
- 2.2 樣式繼承
- 2.3 font
- 3. css動畫
- 1. transition
- 2. animation
- 4. 布局位置方面
- 4.1 實現圖片左右垂直居中
- 4.2 父元素中第一個子元素margin-top無效問題
- 4.3 position定位
- 5. 關于浮動
- 5.1 浮動的呈現效果
- 5.2 清除浮動的三種方式
- 5.3 inline-block與block浮動的對比
- 6. 彈性布局
- 7. border
- 7.1 添加border不影響盒子大小的三種方式
- 7.2 利用border畫三角形
- 8. css預處理--sass
- 8.1 變量
- 8.2 嵌套
- 8.3 導入SASS文件
- 8.4 靜默注釋
- 8.5 混合器@mixin
- 8.6 繼承@extend
- 8.7.function
- ! element語法
- 9. grid 布局
- 10. filedset 使用
- css面試題
- 1.題目匯總
- 2.回流(重排)和重繪
- 3.瀏覽器渲染流程
- 4.水平垂直居中
- 5.flex布局