淺談雙飛翼布局和圣杯布局(三)

3、雙飛翼布局和圣杯布局的區別

圣杯布局和雙飛翼布局解決問題的方案在前一半是相同的,即:

  • 中間欄寬度設置為100%
  • 三欄全部float浮動
  • 左右兩欄加上負margin讓其跟中間欄div并排,以形成三欄布局。

不同在于解決中間欄div內容不被遮擋問題的思路不一樣。

圣杯布局

  1. 將三欄的外包裹層設置左右padding-left和padding-right
  2. 將左右兩個div用相對布局position: relative并分別配合right和left屬性,相對自身移動以便不遮擋中間div

雙飛翼布局

  1. 中間div內部創建子div用于放置內容
  2. 在該子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也不會被擠下去,圣杯布局就會被擠下去。
附:
淺談雙飛翼布局和圣杯布局(一)
淺談雙飛翼布局和圣杯布局(二)

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容