三欄佈局長什麼樣子? 三欄佈局是左右兩側浮動,而中間寬度自適應不浮動作出的效果。 css
三欄佈局的HTMLide
爲何要使用聖盃佈局? 爲了網頁的優化,主要內容須要優先加載,說白了就是爲了解決三欄佈局的main優先加載的問題,讓網頁在main優先加載的同時還保持普通三欄佈局的樣式;佈局
聖盃佈局的製做步驟 1.寫下HTML代碼,規定main、aside、ad的區域,並添加以下樣式優化
2.使三個區域都處於左浮動狀態,並使main的寬度成父容器的100%;3d
3.爲兩側側邊欄添加負margin,用以調整位置,其中擺在左邊的aside的margin-left
爲-100%,而右邊的ad的margin-left
則爲負的其自身的寬度。(利用了浮動元素的負margin到必定值後會使其自身往上一行移動的原理)code
4.爲class="ct"
的主容器設置左右margin值,使其爲之後的側邊欄定位空出位置,margin的值爲側邊欄的寬。cdn
5.對ad和aside添加position:relative
,而後對它們進行定位,移動到兩側,咱們的聖盃佈局就初步作完了,可是還有問題:blog
2.產生這個問題的緣由 當頁面收縮時,main由於是其父容器ct的100%的寬度,因此main也會跟着收縮,當main收縮到比aside寬度還要小,這時候父容器ct的100%寬度<aside的寬度,就不能容納aside,因此將其擠到了下一行,ad同理。it
3.解決方案 能夠給父容器ct加上一個min-width
樣式,min-width
的值不能小於ad和aside二者間的寬度最大值,這樣作可使中間的main的寬度始終比ad和aside大,就不會致使佈局錯亂了。io
爲何選擇雙飛翼佈局? 由於雙飛翼佈局不只能知足main處於優先加載的地位,並且更好的解決了聖盃佈局的錯亂問題,且css代碼更簡單,缺點是增長了一個標籤。
雙飛翼佈局的製做 1.首先聖盃佈局的步驟到了這一步:
2.給main裏面添加一個內容標籤content,而且設置它的左右margin值爲左右側邊欄的寬度:
3.去掉main的背景色和高度,雙飛翼佈局就作成了