任務12-負邊距、三欄布局

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

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

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

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

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

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

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

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

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

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

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

第四步

本文版權歸本人及饑人谷所有,轉載請注明出處。

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

推薦閱讀更多精彩內容