3、雙飛翼布局和圣杯布局的區別
圣杯布局和雙飛翼布局解決問題的方案在前一半是相同的,即:
- 中間欄寬度設置為100%
- 三欄全部float浮動
- 左右兩欄加上負margin讓其跟中間欄div并排,以形成三欄布局。
不同在于解決中間欄div內容不被遮擋問題的思路不一樣。
圣杯布局
- 將三欄的外包裹層設置左右padding-left和padding-right
- 將左右兩個div用相對布局position: relative并分別配合right和left屬性,相對自身移動以便不遮擋中間div
雙飛翼布局
- 中間div內部創建子div用于放置內容
- 在該子div里用margin-left和margin-right為左右兩欄div留出位置
多了1個div,少用4個css屬性(圣杯布局中間divp的adding-left和padding-right這2個屬性,加上左右兩個div用相對布局position: relative及對應的right和left共4個屬性,一共6個;而雙飛翼布局子div里用margin-left和margin-right共2個屬性,6-2=4)。
并且雙飛翼布局還有個好處,讓Main變成BFC元素了,屏幕寬度縮小Main也不會被擠下去,圣杯布局就會被擠下去。
附:
淺談雙飛翼布局和圣杯布局(一)
淺談雙飛翼布局和圣杯布局(二)