(八).元素浮動,行內塊和行內元素在佈局上的特點,頁面佈局的些許事項
阿新 • • 發佈:2022-03-21
1 浮動
1.1 浮動的簡介
1. 浮動最初實現文字環繞效果
2. 現在浮動是主流的頁面佈局方式之一
1.2 元素浮動之後的特點
1. 元素浮動之後會脫離文件流,浮動的元素如果與文件流中的元素位置發生重疊,浮動元素顯示到上面。 2. 多個兄弟元素全部設定浮動,會水平排列;父元素寬度不夠,自動換行。 3. 不論元素原來的顯示模式是塊級、行內、行內塊,設定浮動之後就是浮動元素,獨立於原來的顯示模式,擁有自己的顯示特點 4. 浮動元素的顯示特點: ① 浮動元素預設的寬高被內容撐開 ② 浮動元素可以完美地設定寬高、內外邊距 ③ 沒有外邊距的塌陷和合並問題(區別於塊級元素) ④ 不會被父元素作為文字區處理(區別於行內塊元素、行內元素)
1.3 浮動元素產生的影響
① 對後面兄弟元素的影響
影響:
浮動元素後面的兄弟元素會佔據浮動元素原來的位置,會顯示在浮動元素的下層。
解決:
給緊鄰浮動元素後面的那一個兄弟塊元素設定 clear:left/right/both
② 對父元素的影響
影響:
如果父元素沒有設定固定高度,子元素設定浮動之後,父元素高度會塌陷(父元素高度不能被浮動的子元素撐起來)
解決:
- 方案一 : 給父元素設定固定高度(不推薦) - 方案二 : 給父元素設定浮動(以浮制浮)(不推薦,會產生新的問題) - 方案三 : 給父元素設定 overflow,值不為 visible 即可(推薦) - 方案四 : 在浮動元素的後面新增一個兄弟塊級元素,設定 clear:both; 該元素不要有高度和內容。 - 方案五 : 實現原理同方案四,利用偽元素選擇器動態地為父元素建立最後一個子元素(在所有浮動元素的後面),設定成塊級元素,設定為 clear:both(方案五) .wrapper::after { content: ""; display: block; clear: both; } --- .wrapper:after { content: ""; display: block; clear: both; }
1.4 浮動相關的 CSS 屬性
CSS 屬性 | 功能 | 屬性值 |
---|---|---|
float | 設定浮動 | none:不浮動,預設值。 left:左浮動。 right:右浮動。 |
clear | 清除浮動 | left: 清除左浮動影響。 right:清除右浮動影響。 both:清除左右浮動的影響。 |
2 行內元素或行內塊元素在佈局中的特點
2.1 父元素設定的文字屬性作用於行內元素和行內塊元素
① 讓行內塊元素或行內元素水平居中(在父元素中設定樣式)
text-align: center;
② 讓行內元素或行內塊元素垂直居中(在父元素中設定行高)
1. 父元素中設定行高與父元素高度一致 2. 行內塊本身還需要設定 vertical-align: middle;
注意點:
1、行內塊元素,預設情況下底線與文字的基線對齊,所以行內塊元素垂直居中還需要設定 vertical-align:middle,讓行內元素與文字的中線對齊
2、當行內塊元素內有文字時,為了不讓父元素設定的行高影響行內塊元素內的文字,需要重新設定行高,保證文字的正常顯示
2.2 行內元素或行內塊元素之間的空白問題
① 元素之間的空白(左右)
產生原因:
寫程式碼的時候,保證程式碼可讀性,每個html標籤後面有換行,換行會被識別為空格。
解決方案:
方案一: 每個標籤後面不換行
方案二: 父元素設定字型大小為 0,再單獨給行內塊元素設定字型大小
② 底部的空白(圖片的幽靈空白)
產生原因:
預設行內塊元素的底部與文字的基線對齊,底部的空白就是文字基線與文字底線的距離
解放方案:
方案一: 給父元素設定字型大小為 0
方案二: 給行內塊元素本身設定 vertical-align,值只要不是 baseline 都可以
方案三: 修改顯示模式為塊級(主要針對於圖片)
③ 文字內容個數不同的行內塊元素水平排列無法對齊
產生原因:
⭐️⭐️⭐️行內塊元素的基線對齊具體說明
行內塊元素基線對齊:
1. 有多行文字的行內元素最後一行文字與基線對齊
2. 單行文字的行內元素就是該行文字與基線對齊
3. 沒有文字元素的行內元素底部與基線對齊
解決方案:
給行內塊元素本身設定 vertical-align,值只要不是 baseline 都可以
3 頁面佈局
3.1 頁面的組成部分
3.2 重置樣式表
reset.css
normalize.css
3.3 版心 container
1. 寬度固定
2. 水平居中
3.4 編碼規範
- 短橫線分隔符
- 可以使用這個順序寫css
Positioning 定位相關屬性
Box model 盒子模型相關屬性
Typography 文字字型相關屬性
Visual 視覺效果相關屬性(背景等)