任務(wù)十二-負(fù)邊距·三欄布局

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

答:使用負(fù)邊距的時(shí)候會(huì)改變?cè)卦谖臋n流中的位置。如圖一所示;對(duì)于Box2設(shè)置了margin:-20px;下面的黃色Box3也會(huì)隨著向上移動(dòng)。負(fù)邊距的作用能拉動(dòng)其他沒(méi)有脫離文檔流的元素,而設(shè)置position:relative之后元素原來(lái)在文檔流中占據(jù)的空間仍會(huì)保留,如圖2所示,它只是相對(duì)于自己原來(lái)在文檔流中的位置進(jìn)行偏移。


1.使用負(fù)邊距
2.使用positon:relative

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

答:

  • 首先需要有一個(gè)父容器和其下三個(gè)并列的兄弟子元素,并且三個(gè)子元素都設(shè)置浮動(dòng)。
  • 父容器需要設(shè)置內(nèi)邊距padding
  • 主要區(qū)塊應(yīng)寫(xiě)在最前面,保證優(yōu)先被渲染
  • 左側(cè)欄的margin-left應(yīng)設(shè)置為-100%,右側(cè)欄margin-left設(shè)置為它本身的寬度。

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

答:圣杯布局主要是運(yùn)用了負(fù)邊距,浮動(dòng)和相對(duì)定位去完成一個(gè)三欄布局。
步驟:
①首先寫(xiě)出圣杯布局的DOM結(jié)構(gòu),對(duì)三個(gè)區(qū)塊設(shè)置寬度

<!DOCTYPE html>
<html>
   <head>
     <meta charset="utf-8">
     <title>圣杯布局</title>
     <link rel="stylesheet" type="text/css" href="task1.css">
  </head>
  <body>
  <div class="ct">
    <div class="main">Main</div>
    <div class="aside">Aside</div>
    <div class="extra">Extra</div>
  </div>
</body>
</html>```

body{
font-family: "微軟雅黑";
}
.ct{
width:800px;
border:1px solid;
}
.main{
width:500px;
height:300px;
background:#003151;
color:#ffffff;
}
.aside{
width:100px;
height:100px;
background:#7698A1;
}
.extra{
width:100px;
height:100px;
background:#D91B22;
}```


②對(duì)三個(gè)區(qū)塊設(shè)置浮動(dòng)以及aside和extra的負(fù)邊距,讓它們飄到main上面。(在父容器清除浮動(dòng))
③最后設(shè)置父容器的內(nèi)邊距為aside和extra的自身寬度,并且對(duì)這倆欄設(shè)置相對(duì)定位為自身寬度。

.ct{
  width:800px;
  padding:0 100px;
  border:1px solid;
}
.ct::after{
    content: "";
    display: block;
    clear: both;
}
.main{
  float:left;
  width:100%;
  height:300px;
  background:#003151;
  color:#ffffff;
  text-align: center;
}
.aside{
  float:left;
  position:relative;
  left:-100px;
  margin-left:-100%;
  width:100px;
  height:100px;
  background:#7698A1;
  text-align: center;
}
.extra{
  float:left;
  position:relative;
  left:100px;
  margin-left:-100px;
  width:100px;
  height:100px;
  background:#D91B22;
  text-align: center;
}```

![圣杯布局效果圖](http://upload-images.jianshu.io/upload_images/2349092-6b0ca6cbf3a69575.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

####4.雙飛翼布局的原理? 實(shí)現(xiàn)步驟?
答:雙飛翼布局與圣杯布局的不同點(diǎn)在于,它不是用主區(qū)塊中設(shè)置padding來(lái)形成三欄的方式,而是在主區(qū)塊中設(shè)置一個(gè)子元素,再對(duì)這個(gè)子元素設(shè)置外邊距的值來(lái)形成三欄。

.main{
float:left;
width:100%;
height:300px;
color:#ffffff;
text-align: center;
}
.aside{
float:left;
margin-left:-100%;
width:100px;
height:300px;
background:#7698A1;
text-align: center;
}
.extra{
float:left;
margin-left:-100px;
width:100px;
height:300px;
background:#D91B22;
text-align: center;
}
.main .child{
height:300px;
margin-left:150px;
margin-right:150px;
background:#003151;
}```


雙飛翼布局效果圖

****本文版權(quán)歸饑人谷_鬼腳七和饑人谷所有,轉(zhuǎn)載請(qǐng)注明來(lái)源。****

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

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

  • 一、負(fù)邊距在讓元素產(chǎn)生偏移時(shí)和position: relative有什么區(qū)別? 負(fù)邊距在讓元素產(chǎn)生偏移的時(shí)候其自身...
    dengpan閱讀 372評(píng)論 0 0
  • 問(wèn)答題47 /72 常見(jiàn)瀏覽器兼容性問(wèn)題與解決方案? 參考答案 (1)瀏覽器兼容問(wèn)題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補(bǔ)...
    _Yfling閱讀 14,088評(píng)論 1 92
  • 一、負(fù)邊距在讓元素產(chǎn)生偏移時(shí)和position: relative有什么區(qū)別? 負(fù)margin和position:...
    婷樓沐熙閱讀 983評(píng)論 0 4
  • 1. 負(fù)邊距在讓元素偏移時(shí)和position: relative有什么區(qū)別? 通過(guò)負(fù)邊距進(jìn)行偏移的元素,它會(huì)放棄原...
    Timmmmmmm閱讀 476評(píng)論 0 0
  • 1. 負(fù)邊距在讓元素產(chǎn)生偏移時(shí)和position: relative有什么區(qū)別? 負(fù)邊距:父邊距是用于調(diào)節(jié)元素位置...
    進(jìn)擊的阿群閱讀 418評(píng)論 0 0

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