双飞翼布局模式

跟風遠走 提交于 2020-01-26 16:10:46

今天再看面试题的时候,偶然看到要去左右200px像素,中间自适应,并且中间部分要优先显示。也就是是再布局方面,需要先写中间部分,再写两侧部分,这样才能达到先显示中间的效果。

1.利用浮动

main div{
       float: left;
    }
    .left{
        width: 200px;
        background: blue;
        margin-left: -100%;
    }
    .right{
        width: 200px;
        background: rgb(110, 108, 108);
        margin-left: -200px;
    }
    .mx{
        width: 100%;
        background: chartreuse;
    }
<div class="main">
 <div class="mx">中</div>
 <div class="left">左</div>
 <div class="right">右</div>
</div>

2.利用定位

 .box{
        position: relative;
        height: 40px;
        width: 100%;
        overflow: hidden;
    }
 .box-center{
    height: 40px;
     width: 100%;
     padding-left: 200px;
     background: deeppink;
 }
 .box-left{
     position: absolute;
     width: 200px;
     height: 40px;
     top: 0;
     left:0;
     background: darkturquoise;
 }
 .box-right{
     position: absolute;
     width: 200px;
     height: 40px;
     top: 0;
     right: 0;
     background: darksalmon;
 }
 <div class="box">
        <div class="box-left">左</div>
        <div class="box-center">中</div>
        <div class="box-right">右</div>
    </div>

3.flex布局(非先显示中间)

    .nav{
        display: flex;
        height: 40px;
    }
    .nav .center{
        height: 40px;
        flex: 1;
        background: cornflowerblue;
    }
    .nav_left,.nav_right{
              width: 200px;
              height: 40px;
              background: chartreuse;
      }
   <div class="nav">
    <div class="nav_left">左</div>
    <div class="center">中</div>
    <div class="nav_right">右</div>
    </div>

以上的效果图如下,第一行浮动 第二行flex 第三行定位
运行效果图

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!