任務(wù)12-負(fù)邊距、三欄布局

1.負(fù)邊距在讓元素產(chǎn)生偏移時(shí)和position: relative有什么區(qū)別?

使用負(fù)邊距會改變元素在文檔流中的位置,并且相鄰元素的位置也會受影響。而設(shè)置position:relative之后,元素自身會發(fā)生偏移,但是它在文檔流中占據(jù)的空間仍會保留,相鄰元素的位置不會受影響。
例:

2. 使用負(fù) margin 形成三欄布局有什么條件?

  • 三欄均為浮動(dòng)的塊級元素,且父元素要設(shè)置清除浮動(dòng)
  • 主內(nèi)容區(qū)塊放在最前面,左右側(cè)欄放其后
  • 左側(cè)邊欄需設(shè)置margin-left為-100%,右側(cè)邊欄需設(shè)置margin-left為它本身寬度的負(fù)值

3. 圣杯布局的原理是怎樣的? 簡述實(shí)現(xiàn)圣杯布局的步驟

原理:使用負(fù)邊距使得左右兩側(cè)欄寬度固定,中間主區(qū)塊寬度自適應(yīng)的布局方式。左右側(cè)邊欄和中間主區(qū)塊均設(shè)置浮動(dòng),然后中間主區(qū)塊設(shè)置padding使得兩側(cè)留出空白。左側(cè)邊欄需設(shè)置margin-left為-100%,右側(cè)邊欄需設(shè)置margin-left為它本身寬度的負(fù)值然后再使用相對定位使得左、右邊距能夠流向預(yù)定的位置。
步驟:

  • 第一步:寫出圣杯布局的DOM結(jié)構(gòu)(三個(gè)塊級元素包裹在父容器中,兩邊的側(cè)邊欄寬度固定,中間的主內(nèi)容區(qū)塊寬度自適應(yīng))。
第一步
  • 第二步:對三個(gè)區(qū)塊設(shè)置浮動(dòng),并且父容器要清除浮動(dòng)。
第二步
  • 第三步:設(shè)置第二個(gè)子元素margin-left:-100%,第三個(gè)子元素margin-left:本身寬度的負(fù)值,側(cè)邊欄的兩個(gè)子元素會往上覆蓋中間主區(qū)塊元素。
第三步
  • 第四步:最后設(shè)置父容器的padding;然后使用定位,使左右欄流入相應(yīng)的位置,這樣圣杯布局就完成了。
第四步

4. 雙飛翼布局的原理? 實(shí)現(xiàn)步驟?

原理:雙飛翼布局跟圣杯布局的不同點(diǎn)在于,它不是用主區(qū)塊中設(shè)置padding來形成三欄的方式,而是在其中間區(qū)塊中包裹一個(gè)子元素區(qū)塊做主內(nèi)容,再對這個(gè)子元素設(shè)置外邊距的值來形成三欄。
步驟:

  • 第一步:寫出雙飛翼布局的DOM結(jié)構(gòu)
第一步
  • 第二步:對三個(gè)區(qū)塊設(shè)置浮動(dòng),并且父容器要清除浮動(dòng)。
第二步
  • 第三步:設(shè)置第二個(gè)子元素margin-left:-100%,第三個(gè)子元素margin-left:本身寬度的負(fù)值,側(cè)邊欄的兩個(gè)子元素會往上覆蓋中間主區(qū)塊元素。
第三步

-第四步:在主區(qū)塊中設(shè)置一個(gè)子元素作主區(qū)塊內(nèi)容,并設(shè)置該子元素的左右margin值(值根據(jù)左右側(cè)邊欄區(qū)塊寬度而定)。這樣雙飛翼布局就完成了。

第四步

本文版權(quán)歸本人及饑人谷所有,轉(zhuǎn)載請注明出處。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容