1.標準流
2.浮動
- 浮動的元素將脫離標準流
- 浮動後的元素
不會佔有原有的位置
- 浮動有 左浮動 | 右浮動 | 不浮動
- 浮動的元素不會浮出當前元素的父元素之外,即浮動元素的外邊緣不會超出其父元素的內邊緣。
- 浮動元素之間不會重疊。
- 沒有上下浮動
- 設置浮動屬性後,display屬性將完全失效,元素將可以設置寬高,且不會獨佔一行。
1.清除浮動
在使用浮動之後,清除浮動是必不可少的。
語法:
clear: left | right | both
清除浮動的常用方式:
- 結尾處添加空div標籤, clear: both。[或在下一個元素上加 clear: both]
- 浮動元素的父級div 添加 overflow: hidden;
- 浮動元素的父級定義寬高屬性。
3.定位
1.屬性值
1.relative[相對定位]
- 以當前相對定位的元素
原有的位置
作爲參照物 移動指定的距離 - 相對定位的元素移動後,
原有的位置
仍然會被佔用
2.absolute[絕對定位]
- 絕對定位的元素移動後,
原有的位置不會被佔用
- 以其他
定位的元素[默認值static不算]
作爲參照物移動指定的距離 - 視爲樹型結構,將當前絕對定位的元素作爲葉子節點向樹的根級查找
最近且具有定位屬性的元素
作爲參照物品,之後進行移動。若查找到根級仍然未找到,則以body作爲參照物。
3.fixed[固定定位]
- 以當前瀏覽器窗口作爲參照物固定元素。頁面的滾動不會引起元素位置的變化。
4.static
- 默認值,無任何意義。
2.z-index[堆疊順序]
- 元素使用定位屬性後,元素之間可能會發生堆疊。
- 可以使用z-index屬性調整元素之間的重疊順序
- z-index屬性僅可以在使用了定位的元素上使用
- 數值型,值越大越在前面,若爲負值,則表示越在後面。
4.display
CSS規範規定,每一個網頁元素都有一個display屬性,用於確定該元素的類型。例如div元素,默認display屬性值爲"block",稱之爲"塊元素",span元素的默認display屬性值爲"inline",稱之爲"行內元素"。
塊元素與行元素之間是可以互相轉換的。
塊元素:具有寬高屬性,並且獨佔一行。
行元素:沒有寬高屬性,不會獨佔一行。
行內塊元素:具有寬高屬性,不會獨佔一行。
display常見屬性值
- none:隱藏對象
- inline:指定對象爲內聯元素(行內元素)
- block:指定對象爲塊元素
- inline-block:指定對象爲內聯塊元素
- table-cell:指定對象作爲表格單元格
- flex:彈性盒
5.盒子模型
盒子模型是css中一個重要的概念,通過理解盒子模型才能對頁面進行更好的排版。
W3C組織建議把網頁上的元素看成是一個一個的盒子。
盒子模型主要定義四個區域:內容(content)、內邊距(padding)、邊框(border)、外邊距(margin)
元素實際寬度 = 左右側外邊距 + 左右側邊框 + 內容聲明寬度 + 左右側內邊距
1.外邊距
圍繞在元素邊框周圍的空白區域
- 會在元素外創建額外的空白區域
- 外邊距是透明的
語法
margin: value;
1.外邊距簡寫
margin: value; /*四個方向相同*/
margin: value(上下) value(左右);
margin: value(上) value(左右) value(下);
margin: value(上) value(右) value(下) value(左);
2.外邊距合併
外邊距合併 形成一個外邊距
- 塊級元素的垂直相鄰的外邊距會合並
- 行內元素沒有外邊距。
- 浮動元素的外邊距不會合並
- 外邊距值可以設置爲負值,需要小心使用。
1.上下合併
當兩個塊狀元素上下排列,且都具有外邊距屬性,則上下以最大的外邊距距離進行合併。
2.包含合併
當一個塊狀元素包含一個塊狀元素,且都具有外邊距屬性,則外邊距會自動合併。
解決方案:爲父塊狀元素添加一個邊框屬性即可。
2.邊框
- 會擴大元素邊框所佔用的區域
邊框三要素:寬度、邊框樣式、顏色
語法
border: 1px solid red; /*簡寫*/
border-width: ; /*可選,邊框寬度,默認3像素*/
border-style: ; /*必選,邊框樣式,不寫則不顯示邊框*/
border-color: ; /*可選,邊框顏色,默認黑色*/
邊框樣式有五種常用樣式可選:
- dotted - 點狀
- solid - 實線
- double - 雙線(寬度最起碼設置爲3像素,否則顯示不下)
- dashed - 虛線
- none - 無邊框
3.內邊距
- 內容區域和邊框之間的空間
- 會擴大元素邊框所佔用的區域
語法
padding: value;
值可以爲像素或者百分比,不可爲負數
1.內邊距簡寫
padding: value; /*四個方向相同*/
padding: value(上下) value(左右);
padding: value(上) value(左右) value(下);
padding: value(上) value(右) value(下) value(左);
4.盒子模型
-
標準盒(W3C規範標準)
-
怪異盒(IE盒模型)
通過Box-sizing切換盒子模型 -
conteng-box(標準)
padding和border不被包含在width和height內,元素的實際大小爲寬高+border+padding
,此爲標準模式下的盒模型 -
border-box(怪異)
padding和border被包含在定義的width和height中,元素實際的大小爲你定義了多寬就是多寬。此屬性爲怪異模式下的盒模型。