圣杯布局
圣杯布局兩邊跟中間同級痴脾,中間處在兩邊的上面。不妨假設(shè)兩邊的寬度為200px
梳星。
實(shí)現(xiàn)過程:
- 父級盒子不要給寬度赞赖,設(shè)置
padding: 0 200px;
- 所有的盒子設(shè)置
float: left;
- 中間盒子設(shè)置
width: 100%;
- 目前左右兩邊的盒子都處于第二行,將左邊的盒子設(shè)置
margin-left: -100%;
,從而提升到第一行冤灾,再將盒子的位置往左調(diào)整一點(diǎn)前域,position: relative; left: -200px;
。 - 再將右邊的盒子設(shè)置
margin-right: -200px;
韵吨,往上提升一行并且正好處于最右邊的位置匿垄。
<div class="main">
<div class="content">content</div>
<div class="left">left</div>
<div class="right">right</div>
</div>
* {
margin: 0;
padding: 0;
}
.main {
min-height: 400px;
padding: 0 200px;
text-align: center;
}
.content,.left,.right {
float: left;
}
.content {
width: 100%;
min-height: 400px;
background: lightcoral;
}
.left,.right {
width: 200px;
min-height: 400px;
background: lightsalmon;
}
.left {
margin-left: -100%;
position: relative;
left: -200px;
}
.right {
margin-right: -200px;
}
雙飛翼布局
雙飛翼布局左右兩邊跟中間不同級,中間的盒子包含在父盒子main
中归粉,左右兩邊跟main
同級椿疗,左右兩邊通過margin-left
像翅膀一樣插在中間的兩邊
實(shí)現(xiàn)方式:
- 設(shè)置
main
,left
,right
都為左浮動,脫離正常文本流盏浇,float: left;
变丧。 - 設(shè)置
main
的寬度為100%,width: 100%;
- 設(shè)置
left
的margin-left: -100%;
绢掰,從而提升到上一行的最左邊 - 設(shè)置
right
的margin-left: -200px;
痒蓬,從而提升到上一行的最右邊
<div class="main">
<div class="content">content</div>
</div>
<div class="left">left</div>
<div class="right">right</div>
* {
margin: 0;
padding: 0;
}
.main {
min-height: 400px;
width: 100%;
text-align: center;
}
.main,.left,.right {
float: left;
}
.content {
margin: 0 200px;
min-height: 400px;
background: lightcoral;
}
.left,.right {
width: 200px;
min-height: 400px;
background: lightsalmon;
}
.left {
margin-left: -100%;
}
.right {
margin-left: -200px;
}
Calc實(shí)現(xiàn)
中間盒子與左右兩邊的盒子都屬于同級,且按照左->中->右的順序排列滴劲。
實(shí)現(xiàn)方式:
- 設(shè)置父盒子的寬度為100%攻晒,
width: 100%;
- 設(shè)置子盒子全為左浮動,
float: left;
- 設(shè)置中間盒子的寬度為
width: calc(100% - 400px);
<div class="main">
<div class="left">left</div>
<div class="content">content</div>
<div class="right">right</div>
</div>
* {
margin: 0;
padding: 0;
text-align: center;
}
.main {
min-height: 400px;
width: 100%;
}
.content,.left,.right {
float: left;
}
.content {
width: calc(100% - 400px);
min-height: 400px;
background: lightcoral;
}
.left,.right {
width: 200px;
min-height: 400px;
background: lightsalmon;
}