实现两栏布局的几种方式

本文介绍了实现两栏布局的四种常见方法:1) 利用浮动,通过设置左边元素浮动和右边元素的margin;2) 使用flex布局,通过设置右边元素的flex-grow属性;3) 通过绝对定位,设定父元素为相对定位,调整左右两边元素的位置;4) 同样使用绝对定位,但直接设置左边元素宽度和右边元素的left属性。每种方法都提供了核心代码示例。
摘要由CSDN通过智能技术生成

说明

两栏布局一般指的是页面中一共两栏,左边固定,右边自适应的布局,一共有四种实现的方式。

左边的宽度固定为200px

1、利用浮动

  • 将左边元素的宽度设置为200px,并设置其向左浮动
  • 将右边元素的 margin-left 设置为200px

核心代码

.left {
  float: left;
  width: 200px;
  height: 500px;
  background-color: lightseagreen;
}

.right {
  margin-left: 200px;
  height: 500px;
  background-color: lightsalmon;
}

2、利用 flex 布局

  • 设置右边元素的 放大比例(flex-grow)为1

核心代码

.wrapper {
  display: flex;
}

.left {
  width: 200px;
  height: 500px;
  background-color: lightseagreen;
}

.right {
  flex-grow: 1;
  height: 500px;
  background-color: lightgreen;
}

3、利用绝对定位

  • 将父元素设置为相对定位
  • 左边的元素设置为绝对定位
  • 右边元素的 margin-left 设置为200px

核心代码

.wrapper {
  position: relative;
}

.left {
  position: absolute;

  width: 200px;
  height: 500px;
  background-color: lightsalmon;
}

.right {
  margin-left: 200px;
  height: 500px;
  background-color: lightseagreen;
}

4、利用绝对定位

  • 将父元素设置为相对定位
  • 左边元素的宽度设置为200px
  • 右边元素设置为绝对定位,left 设置为200,其它3个值设为0

核心代码

.wrapper {
  position: relative;
}

.left {
  width: 200px;
  height: 500px;
  background-color: lightseagreen;
}

.right {
  position: absolute;
  top: 0;
  left: 200px;
  right: 0;
  bottom: 0;
  background-color: limegreen;
}

完整代码

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    * {
      margin: 0;
      padding: 0;
    }

    .clearfix::after {
      content: "";
      display: block;
      clear: both;
    }


    /* 第一种方式 */
    /* .left {
      float: left;
      width: 200px;
      height: 500px;
      background-color: lightseagreen;
    }

    .right {
      margin-left: 200px;
      height: 500px;
      background-color: lightsalmon;
    } */

    /* 
      第二种方式:利用 flex 布局
    */
    /* .wrapper {
      display: flex;
    }

    .left {
      width: 200px;
      height: 500px;
      background-color: lightseagreen;
    }

    .right {
      flex-grow: 1;
      height: 500px;
      background-color: lightgreen;
    } */

    /* 
    第三种:利用绝对定位布局的方式,将父级元素设置相对定位。左边元素设置为absolute定位,并且宽度设置为200px。将右边元素的margin-left的值设置为200px。
    .wrapper {
      position: relative;
    }

    .left {
      position: absolute;

      width: 200px;
      height: 500px;
      background-color: lightsalmon;
    }

    .right {
      margin-left: 200px;
      height: 500px;
      background-color: lightseagreen;
    } */


    /*
      第四种:利用绝对定位的方式,将父级元素设置为相对定位。左边元素宽度设置为200px,右边元素设置为绝对定位,左边定位为200px,其余方向定位为0
    */
    .wrapper {
      position: relative;
    }

    .left {
      width: 200px;
      height: 500px;
      background-color: lightseagreen;
    }

    .right {
      position: absolute;
      top: 0;
      left: 200px;
      right: 0;
      bottom: 0;
      background-color: limegreen;
    }

  </style>
</head>

<body>
  <div class="wrapper clearfix">
    <div class="left"></div>
    <div class="right"></div>
  </div>
</body>

</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值