認(rèn)識(shí)圣杯布局和雙飛翼布局

問(wèn)題1:圣杯布局的原理是怎樣的? 簡(jiǎn)述實(shí)現(xiàn)圣杯布局的步驟。


原理大致是這樣的:采用負(fù)邊距使得浮動(dòng)元素達(dá)到預(yù)設(shè)的位置后,再使用padding使得兩側(cè)留出空白區(qū)域待左、右邊距占用,然后再使用相對(duì)定位使得左、右邊距能夠流向預(yù)定的位置。

第一步:先寫(xiě)出html代碼

    <div class="bd-3-lr">
        <div class="main">
            <p>主內(nèi)容欄自適應(yīng)寬度</p>
        </div>

        <div class="aside-1">
            <p>側(cè)邊欄1固定寬度</p>
        </div>

        <div class="aside-2">
            <p>側(cè)邊欄2固定寬度</p>
        </div>
    </div>

注意的是,父元素的三欄務(wù)必先寫(xiě)中間盒子。因?yàn)橹虚g盒子是要被優(yōu)先渲染。并且設(shè)置其自適應(yīng)為width:100%。
第二步 寫(xiě)css樣式
(1)main ,左 ,右三個(gè)區(qū)塊都設(shè)置左浮動(dòng),父元素清除浮動(dòng),main區(qū)塊設(shè)置100%,左右兩區(qū)塊需要定寬,比如200px;
(2)左區(qū)塊設(shè)置margin-left :-100%,使其覆蓋main區(qū)塊的左邊區(qū)域。這個(gè)-100%是以mian的寬度砍掉兩邊的padding值后的寬度
(3)右區(qū)塊設(shè)置margin-left :負(fù)自身寬度,使其覆蓋main區(qū)塊的右邊區(qū)域。負(fù)邊距起始位置也是main砍掉右邊的padding的位置起算。
(4)main自身加padding 。.main{ padding: 0 200px;} ,讓父容器的3個(gè)區(qū)塊往中間擠。
(5)用相對(duì)定位position:relative,leftright.讓左右兩個(gè)區(qū)塊在不脫離文檔流的情況下偏移位置,拉出自身寬度,覆蓋到父元素的padding上。同時(shí)保證左右兩區(qū)塊移動(dòng)時(shí)候不遮擋中間。

Paste_Image.png

問(wèn)題2:雙飛翼布局的原理? 實(shí)現(xiàn)步驟?


雙飛翼和圣杯也是先設(shè)置三欄元素全部float,左右兩欄添加負(fù)邊框讓其和中間元素?cái)D在一行。圣杯用的是padding和相對(duì)定位,雙飛翼的不同是,比如雙飛翼的main中多了一層div嵌套,把margin拿到內(nèi)層上去,在內(nèi)部嵌套中設(shè)置左右margin,然后另外兩個(gè)模塊分別用負(fù)邊距拉到指定位置。

Paste_Image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 問(wèn)答題47 /72 常見(jiàn)瀏覽器兼容性問(wèn)題與解決方案? 參考答案 (1)瀏覽器兼容問(wèn)題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補(bǔ)...
    _Yfling閱讀 13,805評(píng)論 1 92
  • 1. 負(fù)邊距在讓元素產(chǎn)生偏移時(shí)和position: relative有什么區(qū)別? 負(fù)邊距:父邊距是用于調(diào)節(jié)元素位置...
    進(jìn)擊的阿群閱讀 364評(píng)論 0 0
  • 在前端布局中,事實(shí)上,圣杯布局其實(shí)和雙飛翼布局是一回事。它們實(shí)現(xiàn)的都是三欄布局,兩邊的盒子寬度固定,中間盒子自適應(yīng)...
    風(fēng)銘閱讀 1,490評(píng)論 1 6
  • 一、負(fù)邊距在讓元素產(chǎn)生偏移時(shí)和position: relative有什么區(qū)別? 負(fù)margin和position:...
    婷樓沐熙閱讀 894評(píng)論 0 4
  • 7.14日秦皇島-承德 225公里 7.15-19日承德60公里 7.19-21日富強(qiáng)口才中學(xué)生訓(xùn)練營(yíng) 7.22日...
    沒(méi)你G閱讀 757評(píng)論 1 4