实现右边固定,左边自适应(两栏布局)

738 阅读1分钟

两个兄弟盒子,实现右边固定宽度,左边自适应宽度

 <body>
    <div class="box"></div>
    <div class="box1"></div>
  </body>

常用的几种方法:
1.position + margin 给右侧盒子绝对定位或者固定定位,并设置宽度,左侧盒子margin-left,值最小为右侧盒子,或者使用css3的calc()自动计算页面剩余宽度并赋值给自适应盒子的宽度。

<style>
.box {
        position: absolute;
        top: 0;
        right: 0;
        bottom: 0;
        background-color: pink;
        width: 200px;
      }
      .box1{
        /* width: calc(100vw-200px); */ 利用css3的计算属性,自动计算视口剩余宽度和 margin二选一来使用即可
        margin-right: 200px;
        height: 100vh;
        background-color: green;
      }
</style>

2.使用flex
给他们的父级设置display:felx,开启flex布局,右边设置固定宽度,左侧盒子设置flex:1,使其宽度就等于父级盒子的剩余空间,从而达到自适应的效果

<style>
 body{
        display: flex;
        height: 100vh;
      }
      .box1 {
        width: 200px;
        background-color: pink;
      }
      .box {
        flex:1;
        background-color: green;
      }
</style>

3.使用float + calc() + overflow 右侧盒子设置float:right,使其浮动到页面最右侧,并设置固定的宽度,左侧盒子开启左浮动,使其浮动到页面最左侧,使用css3的calc()自动计算页面剩余宽度并赋值给自适应盒子的宽度,再给父级设置overflow: hidden,清除浮动带来的影响

<style>
 body{
        overflow: hidden;
      }
      .box1 {
        float: right;
        width: 200px;
        height: 100vh;
        background-color: pink;
      }
      .box {
        float: left;
        width: calc(100vw - 200px);
        height: 100vh;
        background-color: green;
      }
</style>