圣杯布局是指兩邊定寬,中間自適應的三欄布局。
圣杯布局和雙飛翼布局解決問題的方案在前一半是相同的,也就是三欄全部float浮動,但左右兩欄加上負margin讓其跟中間欄div并排,以形成三欄布局。
主欄目放在最前優先渲染,設置寬度100%,左浮動。
主欄目中再加一層div,設置<code>margin-left , margin-right</code>用于放置側邊欄。
container:after清除浮動。
左右兩欄設置浮動,寬度。左側邊欄設置<code>margin-left:-100%</code>跑到左上角。
右側欄設置<code>margin-left:-200px</code>(自身寬度),飄到右上角。
不同之處:
圣杯布局,為了中間div內容不被遮擋,將中間div設置了左右padding-left和padding-right后,將左右兩個div用相對布局position: relative并分別配合right和left屬性,以便左右兩欄div移動后不遮擋中間div。
雙飛翼布局,為了中間div內容不被遮擋,直接在中間div內部創建子div用于放置內容,在該子div里用margin-left和margin-right為左右兩欄div留出位置。
雙飛翼布局比圣杯布局多創建了一個div,但不用相對布局了。