- 負(fù)邊距在讓元素產(chǎn)生偏移時(shí)和position: relative有什么區(qū)別?
負(fù)邊距讓元素產(chǎn)生偏移會(huì)影響普通流舌厨;position: relative;
讓元素產(chǎn)生偏移后會(huì)保留元素偏移前的空間,不會(huì)對(duì)結(jié)構(gòu)下面的元素產(chǎn)生影響。
<style type="text/css">
.box{
width: 300px;
height: 200px;
border: 1px solid;
margin: 30px auto;
}
.one{
width: 50px;
height: 50px;
background-color: #f00;
position: relative;
}
.two{
width: 50px;
height: 50px;
background-color: #f00;
}
.con{
width: 50px;
height: 50px;
background-color: #0f0;
}
</style>
</head>
<body>
<div class="fa">
<div class="box">
<div class="one"></div>
<div class="con"></div>
</div>
<div class="box">
<div class="two"></div>
<div class="con"></div>
</div>
</body>```
![偏移前](http://upload-images.jianshu.io/upload_images/2150964-173cfa85f9734afa.PNG?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
偏移代碼
.one{top: -20px;}
.two{margin-top: -20px; }```
偏移后
- 使用負(fù) margin 形成三欄布局有什么條件?
- 兩側(cè)定寬叫挟,中間自適應(yīng);
- 三個(gè)塊元素在同一個(gè)容器內(nèi)且子元素都需要浮動(dòng)锐借;
- 設(shè)置負(fù)邊距后下面的元素可以上去勺卢。
- 圣杯布局的原理是怎樣的? 簡(jiǎn)述實(shí)現(xiàn)圣杯布局的步驟
圣杯布局和雙飛翼布局的區(qū)別在于解決被覆蓋區(qū)域的方式不同。圣杯布局是兩側(cè)欄在父元素的幫助下改變被覆蓋者尽狠,“你的地盤太多了衔憨,我要收回一部分(padding),然后悄悄地給了另外一個(gè)或兩個(gè)孩子”袄膏;雙飛翼布局是被覆蓋者主動(dòng)求變践图,“看在兄弟的情分上,我讓你們留下沉馆,并且會(huì)給你們封地(margin)码党,但是德崭,普天之下莫非王土,地契是我的”揖盘。- 原理:負(fù)邊距+定位眉厨。margin-left為負(fù)值,且兩個(gè)元素不在一行的時(shí)候(可以用元素
float:left,width:100%
實(shí)現(xiàn))margin-left
可以吃掉兄弟元素的margin兽狭。position: relative
可以讓元素相對(duì)自身進(jìn)行偏移憾股。 - 步驟:
- 給父元素設(shè)置
padding-left
、padding-right
分別等于左右欄對(duì)應(yīng)寬度箕慧,中間欄自適應(yīng)服球; - 利用負(fù)邊距
margin-left: -100%
以及margin-left: -側(cè)邊欄寬度
,讓下面元素上去销钝; - 兩側(cè)欄設(shè)置
position: relative
調(diào)整左右距離實(shí)現(xiàn)兩欄或三欄布局有咨。
- 給父元素設(shè)置
- 原理:負(fù)邊距+定位眉厨。margin-left為負(fù)值,且兩個(gè)元素不在一行的時(shí)候(可以用元素
- 雙飛翼布局的原理? 實(shí)現(xiàn)步驟?
- 原理:負(fù)邊距+被覆蓋內(nèi)容添加子div蒸健,并設(shè)置左右margin值座享。
- 步驟:使用負(fù)margin使下面的div浮動(dòng)上來,再給被覆蓋內(nèi)容的欄的內(nèi)部使用一個(gè)div似忧,給這個(gè)div設(shè)置
margin-left
或margin-right
為左欄或右欄的寬度,實(shí)現(xiàn)兩欄或三欄布局淳衙。