最近面试的时候遇到一个提问说,如何做到一个左右宽度固定,中间自适应的布局,我的答案不重要,重要的是不是面试官想听到的答案,这样问大概率他想听到的答案一定是双飞翼布局,所以今天就手敲一个双飞翼布局让大家搞明白。
- 首先我们有三个盒子div,分别是
center、left、right
<div class="container">
<div class="center">中间</div>
<div class="left">左</div>
<div class="right">右</div>
</div>
- 然后我们给三个div设置宽高和背景色,方便我们看,中间要自适应,所以宽度为100%
.center {
background-color: pink;
width: 100%;
height: 100vh;
}
.left {
background-color: red;
width: 200px;
height: 100vh;
}
.right {
background-color: blue;
width: 200px;
height: 100vh;
}
- 我们为了让
三个div
在同一行
,所以设置container
下的三个div
都浮动布局
.container div{
float: left;
}
此时效果是这样的,左右两个div
是被挤下去
- 我们通过
margin-left
值把左右两个div给定位到一行,左边-100%,右边div宽度是多少,就负的多少px
.left {
background-color: red;
width: 200px;
height: 10vh;
margin-left: -100%;
}
.right {
background-color: blue;
width: 200px;
height: 10vh;
margin-left: -200px;
}
就这样了,拜~