35种前端常用布局方案

水平居中(七种方案)

  1. 使用text-align属性

    若子级为行内块级元素,可以通过为其父元素设置 text-align:center 即可实现水平居中

    <div class="parent">
        <div class="child"></div>
    </div>
        .parent {
            background-color: #ff8787;
            text-align: center;
        }

        .child {
            width: 300px;
            height: 300px;
            background-color: #e599f7;
            display: inline-block;
        }
  1. 定宽块级元素水平居中

    对于定宽的子元素,直接 margin:auto 即可实现水平居中

    <div class="parent">
        <div class="child"></div>
    </div>
        .parent {
            background-color: #ff8787;
        }

        .child {
            width: 300px;
            height: 300px;
            background-color: #e599f7;
            margin: auto;
        }
  1. 定宽块级元素水平居中

    对于开启定位的元素,可以通过left属性和margin属性即可实现水平居中

    <div class="parent">
        <div class="child"></div>
    </div>
        .parent {
            background-color: #ff8787;
        }

        .child {
            width: 300px;
            height: 300px;
            background-color: #e599f7;
            /* 开启定位 */
            position:relative;
            left:50%;
            /* margin-left 为 负的宽度的一半 */
            margin-left: -150px;
        }
  1. 定宽块级元素水平居中

    当元素开启绝对定位或固定定位时,left属性和right属性一起设置就会拉伸元素的宽度,再配合width属性和margin属性即可实现元素水平居中

    <div class="parent">
        <div class="child"></div>
    </div>
        .parent {
            background-color: #ff8787;
            /* 父元素开启相对定位 */
            position: relative;
        }

        .child {
            width: 300px;
            height: 300px;
            background-color: #e599f7;
            /* 子元素开启绝对定位 */
            position: absolute;
            /* 水平拉满屏幕 */
            left: 0;
            right: 0;
            /* 拉满屏幕之后设置宽度,最后通过margin实现水平居中 */
            margin: auto;
        }
  1. 定宽块级元素水平居中

    当元素开启绝对定位或固定定位时,left属性和transfrom属性即可实现元素水平居中

    <div class="parent">
        <div class="child"></div>
    </div>
        .parent {
            background-color: #ff8787;
        }

        .child {
            width: 300px;
            height: 300px;
            background-color: #e599f7;
            /* 开启定位 */
            position: relative;
            /* 该方法不需要手动计算宽度 */
            left: 50%;
            transform: translateX(-50%);
        }
  1. Flex布局

    通过Flex布局即可实现元素水平居中

    <div class="parent">
        <div class="child"></div>
    </div>
        .parent {
            background-color: #ff8787;
            /* 开启Flex布局 */
            display: flex;
            /* 通过 justify-content 属性实现居中 */
            justify-content: center;
        }
        
        .child {
            width: 300px;
            height: 300px;
            background-color: #e599f7;
            /* 子元素设置 margin:auto */
            margin: auto;
        }
  1. Grid布局

    通过Grid布局即可实现元素水平居中

    <div class="parent">
        <div class="child"></div>
    </div>
        .parent {
            background-color: #ff8787;
            /* 开启Grid布局 */
            display: flex;
            /* 方法一:通过 justify-items:center 属性实现居中 */
            justify-items: center;
            /* 方法二:通过 justify-content 属性实现居中 */
            /*justify-content: center;*/
        }

        .child {
            width: 300px;
            height: 300px;
            background-color: #e599f7;
            /* 子元素设置 margin:auto 属性 */
            margin: auto;
        }

页面效果:
水平居中

垂直居中(六种方案)

  1. 行内块级元素垂直居中

    若子级为行内块级元素,可以通过为其设置 display:inline-blockvertical-align: middle,为其父元素设置行高等同与子元素高度即可实现垂直居中

    <div class="parent">
        <div class="child"></div>
    </div>
        .parent {
            width: 300px;
            height: 500px;
            margin: auto;
            background-color: #ff8787;
            /* 为父元素设置行高 */
            line-height: 500px;
        }

        .child {
            width: 300px;
            height: 300px;
            background-color: #e599f7;
            /* 为子元素设置 display: inline-block */
            display: inline-block;
            /* 通过 vertical-align:middle 实现居中*/
            vertical-align: middle;
        }
  1. 定位方式垂直居中

    通过定位方式实现垂直居中,实际上就是通过给父元素添加position:relative,给子元素添加position:absolutetop:50%margin-top:-高度的一半实现的

    <div class="parent">
        <div class="child"></div>
    </div>
        .parent {
            width: 300px;
            height: 500px;
            margin: auto;
            background-color: #ff8787;
            /* 为父元素开启相对定位 */
            position: relative;
        }

        .child {
            width: 300px;
            height: 300px;
            background-color: #e599f7;
            /* 为子元素开启绝对定位 */
            position: absolute;
            top: 50%;
            /* margin-top 等于 -高度的一半*/
            margin-top: -150px;
        }
  1. 定位方式垂直居中

    通过定位方式实现垂直居中,实际上就是通过给父元素添加position:relative,给子元素添加position:absolutetop:0bottom:0margin:auto实现的

    <div class="parent">
        <div class="child"></div>
    </div>
        .parent {
            width: 300px;
            height: 500px;
            margin: auto;
            background-color: #ff8787;
            /* 为父元素开启相对定位 */
            position: relative;
        }

        .child {
            width: 300px;
            height: 300px;
            background-color: #e599f7;
            /* 为子元素开启绝对定位 */
            position: absolute;
            top: 0;
            bottom: 0;
            margin: auto;
        }
  1. 定位方式垂直居中

    通过定位方式实现垂直居中,实际上就是通过给父元素添加position:relative,给子元素添加position:absolutetop:50%transform: translateY(-50%)实现的

    <div class="parent">
        <div class="child"></div>
    </div>
        .parent {
            width: 300px;
            height: 500px;
            margin: auto;
            background-color: #ff8787;
            /* 为父元素开启相对定位 */
            position: relative;
        }

        .child {
            width: 300px;
            height: 300px;
            background-color: #e599f7;
            /* 为子元素开启绝对定位 */
            position: absolute;
            top: 50%;
            transform: translateY(-50%);
        }
  1. Flex布局

    通过Flex布局实现垂直居中

    <div class="parent">
        <div class="child"></div>
    </div>
        .parent {
            width: 300px;
            height: 500px;
            margin: auto;
            background-color: #ff8787;
            /* 开启Flex布局 */
            display: flex;
            /* 方法一 */
            /* align-items: center; */
        }

        .child {
            width: 300px;
            height: 300px;
            /* 方法二 */
            background-color: #e599f7;
        }
  1. Grid布局

    通过Grid布局实现垂直居中

    <div class="parent">
        <div class="child"></div>
    </div>
        .parent {
            width: 300px;
            height: 500px;
            margin: auto;
            background-color: #ff8787;
            /* 开启Grid布局 */
            display: grid;
            /* 方法一 */
            /* align-items: center; */
            /* 方法二 */
            /* align-content: center; */
        }

        .child {
            width: 300px;
            height: 300px;
            background-color: #e599f7;
            /* 方法三 */
            /* margin: auto; */
            /* 方法四 */
            align-self: center;
        }

页面效果:
垂直居中

水平垂直居中(七种方案)

  1. 行内块级元素水平垂直居中

    行内块级元素水平垂直居中就是通过给父元素添加line-heighttext-align:center,给子元素添加 display: inline-blockvertical-align: middle实现的

    <div class="parent">
        <div class="child"></div>
    </div>
        *{
            margin: 0;
            padding: 0;
        }

        .parent {
            width: 500px;
            height: 500px;
            margin: auto;
            background-color: #ff8787;
            /* 设置行高等于容器高度 */
            line-height: 500px;
            /* 通过 text-align: center 实现水平居中 */
            text-align: center;
        }

        .child {
            width: 300px;
            height: 300px;
            background-color: #e599f7;
            /* 将子元素设置为水平块级元素 */
            display: inline-block;
            /* 通过 vertical-align: middle 实现垂直居中 */
            vertical-align: middle;
        }
  1. 定位实现水平垂直居中

    定位实现水平垂直居中就是通过给父元素添加position:relative,给子元素添加 position:absoluteleft:calc(50% - 宽度/高度的一半)top:calc(50% - 宽度/高度的一半)实现的

    <div class="parent">
        <div class="child"></div>
    </div>
        *{
            margin: 0;
            padding: 0;
        }

        .parent {
            width: 500px;
            height: 500px;
            margin: auto;
            background-color: #ff8787;
            /* 为父元素开启相对定位 */
            position: relative;
        }

        .child {
            width: 300px;
            height: 300px;
            background-color: #e599f7;
            /* 为子元素开启绝对定位 */
            position: absolute;
            /* 设置该元素的偏移量,值为 50% 减去 宽度/高度的一半*/
            left: calc(50% - 150px);
            top: calc(50% - 150px);
        }
  1. 定位实现水平垂直居中

    给父元素添加position:relative,给子元素添加 position:absolute、设置该元素的偏移量为50%,通过外边距负值的方式将元素移动回去实现居中

    <div class="parent">
        <div class="child"></div>
    </div>
        *{
            margin: 0;
            padding: 0;
        }

        .parent {
            width: 500px;
            height: 500px;
            margin: auto;
            background-color: #ff8787;
            /* 为父元素开启相对定位 */
            position: relative;
        }

        .child {
            width: 300px;
            height: 300px;
            background-color: #e599f7;
            /* 为子元素开启绝对定位 */
            position: absolute;
            /* 设置该元素的偏移量,值为 50% */
            left: 50%;
            top: 50%;
            margin-left: -150px;
            margin-top: -150px;
        }
  1. 定位实现水平垂直居中

    给父元素添加position:relative,给子元素添加 position:absolute、将元素拉满整个容器、通过margin:auto实现居中

    <div class="parent">
        <div class="child"></div>
    </div>
       *{
            margin: 0;
            padding: 0;
        }

        .parent {
            width: 500px;
            height: 500px;
            margin: auto;
            background-color: #ff8787;
            /* 为父元素开启相对定位 */
            position: relative;
        }

        .child {
            width: 300px;
            height: 300px;
            background-color: #e599f7;
            /* 为子元素开启绝对定位 */
            position: absolute;
            /* 让子元素拉满整个容器 */
            top: 0;
            left: 0;
            right: 0;
            bottom: 0;
            /* 通过 margin:auto 实现水平居中 */
            margin: auto;
        }
  1. 定位实现水平垂直居中

    给父元素添加position:relative,给子元素添加 position:absolute、设置该元素的偏移量值为50%,通过translate反向偏移的方式实现居中

    <div class="parent">
        <div class="child"></div>
    </div>
        *{
            margin: 0;
            padding: 0;
        }

        .parent {
            width: 500px;
            height: 500px;
            margin: auto;
            background-color: #ff8787;
            /* 为父元素开启相对定位 */
            position: relative;
        }

        .child {
            width: 300px;
            height: 300px;
            background-color: #e599f7;
            /* 为子元素开启绝对定位 */
            position: absolute;
            /* 设置元素的偏移量为50% */
            left: 50%;
            top: 50%;
            /* 通过 translate 反向偏移的方式实现居中 */
            transform: translate(-50%, -50%);
        }
  1. Flex布局

    通过Flex布局实现水平垂直居中

    <div class="parent">
        <div class="child"></div>
    </div>
        *{
            margin: 0;
            padding: 0;
        }

        .parent {
            width: 500px;
            height: 500px;
            margin: auto;
            background-color: #ff8787;
            /* 开启Flex布局 */
            display: flex;
            /* 方法一 */
            justify-content: center;
            align-items: center;
        }

        .child {
            width: 300px;
            height: 300px;
            background-color: #e599f7;
            /* 方法二 */
            /* margin: auto; */
        }
  1. Grid布局

    通过Grid布局实现水平垂直居中

    <div class="parent">
        <div class="child"></div>
    </div>
        *{
            margin: 0;
            padding: 0;
        }

        .parent {
            width: 500px;
            height: 500px;
            margin: auto;
            background-color: #ff8787;
            /* 开启Flex布局 */
            display: grid;
            /* 方法一 */
            align-items: center;
            justify-content: center;
            /* 方法一缩写 */
            /* place-items: center; */
            /* 方法二 */
            /* align-content: center; */
            /* justify-content: center; */
            /* 方法二缩写 */
            /* place-content: center; */

        }

        .child {
            width: 300px;
            height: 300px;
            background-color: #e599f7;
            /* 方法三 */
            /* margin: auto; */
            /* 方法四 */
            /* align-self: center; */
            /* justify-self: center; */
            /* 方法四缩写 */
            /* place-self: center; */
        }

页面效果:
水平垂直居中

两列布局(六种方案)

  1. float+calc()函数完成左列定宽右列自适应

    左右列同时开启浮动,右列宽度为父级100%减去左列的宽度

      <div class="box clearfix">
          <div class="left">定宽</div>
          <div class="right">自适应</div>
      </div>
        *{
            margin: 0;
            padding: 0;
        }
        .box{
             height: 400px;
             background-color: #eebefa;
        }
        .left{
              width: 200px;
              height: 400px;
              background-color: #f7f895;
              line-height: 400px;
              text-align: center;
              font-size: 70px;
              /* 左边列开启浮动 */
              float: left;
        }
        .right{
               height: 400px;
               background-color: #c0eb75;
               line-height: 400px;
               font-size: 70px;
               /* 右边列开启浮动 */
               float: left;
               /* 宽度减去左列的宽度 */
               width: calc(100% - 200px);
        }
        /* 清除浮动 */
        .clearfix:after{
                  height: 0;
                  content: '';
                  display: block;
                  clear: both;
                  visibility: hidden;
        }
  1. float+margin-left完成左列定宽右列自适应

    左列开启浮动,右列宽度为左列的宽度的外边距

      <div class="box clearfix">
          <div class="left">定宽</div>
          <div class="right">自适应</div>
      </div>
        *{
            margin: 0;
            padding: 0;
        }
        .box{
             height: 400px;
             background-color: #eebefa;
        }
        .left{
              width: 200px;
              height: 400px;
              background-color: #f7f895;
              line-height: 400px;
              text-align: center;
              font-size: 70px;
              /* 左边列开启浮动 */
              float: left;
        }
        .right{
               height: 400px;
               background-color: #c0eb75;
               line-height: 400px;
               font-size: 70px;
               /* 通过外边距的方式使该容器的左边有200px */
               margin-left: 200px;
        }
        /* 清除浮动 */
        .clearfix:after{
                  height: 0;
                  content: '';
                  display: block;
                  clear: both;
                  visibility: hidden;
        }
  1. absolute+margin-left完成左列定宽右列自适应

    左列开启定位,右列宽度为左列的宽度的外边距

      <div class="box clearfix">
          <div class="left">定宽</div>
          <div class="right">自适应</div>
      </div>
        *{
            margin: 0;
            padding: 0;
        }
        .box{
             height: 400px;
             background-color: #eebefa;
        }
        .left{
              width: 200px;
              height: 400px;
              background-color: #f7f895;
              line-height: 400px;
              text-align: center;
              font-size: 70px;
              /* 左边列开启定位 脱离文档流 */
              position: absolute;
        }
        .right{
               height: 400px;
               background-color: #c0eb75;
               line-height: 400px;
               font-size: 70px;
               /* 通过外边距的方式使该容器的左边有200px */
               margin-left: 200px;
               
        }
        /* 清除浮动 */
        .clearfix:after{
                  height: 0;
                  content: '';
                  display: block;
                  clear: both;
                  visibility: hidden;
        }
  1. float+overflow完成左列定宽右列自适应

    左列开启浮动,右列设置overflow:hidden完成自适应

      <div class="box clearfix">
          <div class="left">定宽</div>
          <div class="right">自适应</div>
      </div>
        *{
            margin: 0;
            padding: 0;
        }
        .box{
             height: 400px;
             background-color: #eebefa;
        }
        .left{
              width: 200px;
              height: 400px;
              background-color: #f7f895;
              line-height: 400px;
              text-align: center;
              font-size: 70px;
              /* 左边列开启浮动 */
              float: left;
        }
        .right{
               height: 400px;
               background-color: #c0eb75;
               line-height: 400px;
               font-size: 70px;
               /* 右列实现自适应 */
               overflow: hidden;
        }
        /* 清除浮动 */
        .clearfix:after{
                  height: 0;
                  content: '';
                  display: block;
                  clear: both;
                  visibility: hidden;
        }
  1. Flex布局

    通过Flex布局实现左列定宽右列自适应

      <div class="box clearfix">
          <div class="left">定宽</div>
          <div class="right">自适应</div>
      </div>
        *{
            margin: 0;
            padding: 0;
        }
        .box{
             height: 400px;
             background-color: #eebefa;
             /* 开启Flex布局 */
             display: flex;
        }
        .left{
              width: 200px;
              height: 400px;
              background-color: #f7f895;
              line-height: 400px;
              text-align: center;
              font-size: 70px;
        }
        .right{
               height: 400px;
               background-color: #c0eb75;
               line-height: 400px;
               font-size: 70px;
               /* 右列实现自适应  flex: 1 表示 flex-grow: 1 -----> 即该项占所有剩余空间 */ 
               flex: 1;

        }
        /* 清除浮动 */
        .clearfix:after{
                  height: 0;
                  content: '';
                  display: block;
                  clear: both;
                  visibility: hidden;
        }
  1. Grid布局

    通过Grid布局实现左列定宽右列自适应

      <div class="box clearfix">
          <div class="left">定宽</div>
          <div class="right">自适应</div>
      </div>
        *{
            margin: 0;
            padding: 0;
        }
        .box{
             height: 400px;
             background-color: #eebefa;
             /* 开启Grid布局 */
             display: grid;
             /* 将其划分为两行,其中一列有本身宽度决定,一列占剩余宽度 */
             grid-template-columns: auto 1fr;
        }
        .left{
              width: 200px;
              height: 400px;
              background-color: #f7f895;
              line-height: 400px;
              text-align: center;
              font-size: 70px;
        }
        .right{
               height: 400px;
               background-color: #c0eb75;
               line-height: 400px;
               font-size: 70px;
        }
        /* 清除浮动 */
        .clearfix:after{
                  height: 0;
                  content: '';
                  display: block;
                  clear: both;
                  visibility: hidden;
        }

页面效果:
两列布局

三列布局(五种方案)

三列布局主要分为两大类:一种是前两列定宽最后一列自适应,一种是两边列定宽中间自适应

  1. 通过float实现两边列定宽中间自适应
 <!-- 解决高度塌陷 -->
<div class="container clearfix">
    <div class="left"></div>
    <div class="right"></div>
    <div class="content">内容</div>
</div>
        body {
            margin: 0;
        }

        .container {
            height: 400px;
            background-color: #eebefa;
        }

        .left {
            height: 400px;
            width: 200px;
            background-color: #f783ac;
            /* 左列开启左浮动 */
            float: left;
        }

        .content {
            height: 400px;
            background-color: #d9480f;
            /* 自适应元素设置overflow会创建一个BFC完成自适应 */
            overflow: hidden;
        }

        .right {
            height: 400px;
            width: 200px;
            background-color: #c0eb75;
            /* 右列容器开启右浮动 */
            float: right;
        }

        .left,
        .content,
        .right {
            font-size: 70px;
            line-height: 400px;
            text-align: center;
        }

        /* 清除浮动 */
        .clearfix:after {
            content: '';
            display: block;
            height: 0;
            clear: both;
            visibility: hidden;
        }
  1. 通过float实现两边列定宽中间自适应
 <!-- 解决高度塌陷 -->
<div class="container clearfix">
    <div class="left"></div>
    <div class="right"></div>
    <div class="content">内容</div>
</div>
        body {
            margin: 0;
        }

        .container {
            height: 400px;
            background-color: #eebefa;
        }

        .left {
            height: 400px;
            width: 200px;
            background-color: #f783ac;
            /* 左列开启左浮动 */
            float: left;
        }

        .content {
            height: 400px;
            background-color: #d9480f;
            /* 使中间自适应的宽度为父级容器减去两个定宽的列 */
            width:calc(100%-400px);
        }

        .right {
            height: 400px;
            width: 200px;
            background-color: #c0eb75;
            /* 右列容器开启右浮动 */
            float: right;
        }

        .left,
        .content,
        .right {
            font-size: 70px;
            line-height: 400px;
            text-align: center;
        }

        /* 清除浮动 */
        .clearfix:after {
            content: '';
            display: block;
            height: 0;
            clear: both;
            visibility: hidden;
        }
  1. 通过position实现两边列定宽中间自适应

    左右两列脱离文档流,并通过偏移的方式达到自己的区域;中间列宽度为父级容器减去两个定宽的列;通过外边距将容器往内缩小

 <!-- 解决高度塌陷 -->
    <div class="container clearfix">
        <div class="left"></div>
        <div class="content">内容</div>
        <div class="right"></div>
    </div>

        body {
            margin: 0;
        }

        .container {
            height: 400px;
            background-color: #eebefa;
        }

        .left {
            height: 400px;
            width: 200px;
            background-color: #f783ac;
            /* 左列脱离文档流,并通过偏移的方式到达自己的区域*/
            position: absolute;
            left: 0;
            top: 0;
        }

        .content {
            height: 400px;
            background-color: #d9480f;
            /* 使中间自适应的宽度为父级容器减去两个定宽的列 */
            width: calc(100%-400px);
            /* 通过外边距将容器往内缩小 */
            margin-left: 200px;
            margin-right: 200px;
        }

        .right {
            height: 400px;
            width: 200px;
            background-color: #c0eb75;
            /* 右列脱离文档流,并通过偏移的方式到达自己的区域*/
            position: absolute;
            left: 0;
            top: 0;
        }

        .left,
        .content,
        .right {
            font-size: 70px;
            line-height: 400px;
            text-align: center;
        }

        /* 清除浮动 */
        .clearfix:after {
            content: '';
            display: block;
            height: 0;
            clear: both;
            visibility: hidden;
        }
  1. Flex布局

    通过Flex布局实现左右两列定宽中间自适应

<!-- 解决高度塌陷 -->
<div class="container clearfix">
    <div class="left"></div>
    <div class="content">内容</div>
    <div class="right"></div>
</div>
        body {
            margin: 0;
        }

        .container {
            height: 400px;
            background-color: #eebefa;
            /* 为父元素开启flex布局 */
            display: flex;
        }

        .left {
            height: 400px;
            width: 200px;
            background-color: #f783ac;
        }

        .content {
            height: 400px;
            background-color: #d9480f;
        }

        .right {
            height: 400px;
            width: 200px;
            /* flex:1 表示该项占所有剩余空间 */
            flex: 1;
        }

        .left,
        .content,
        .right {
            font-size: 70px;
            line-height: 400px;
            text-align: center;
        }

        /* 清除浮动 */
        .clearfix:after {
            content: '';
            display: block;
            height: 0;
            clear: both;
            visibility: hidden;
        }
  1. Grid布局

    通过Grid布局实现左右两列定宽中间自适应

  <!-- 解决高度塌陷 -->
    <div class="container clearfix">
        <div class="left"></div>
        <div class="content">内容</div>
        <div class="right"></div>
    </div>
        body {
            margin: 0;
        }

        .container {
            height: 400px;
            background-color: #eebefa;
            /* 为父元素开启Grid布局 */
            display: grid;
            /* 将其划分为两行,其中一列有本身宽度决定, 一列占剩余宽度*/
            grid-template-columns: auto 1fr auto;
        }

        .left {
            height: 400px;
            width: 200px;
            background-color: #f783ac;
        }

        .content {
            height: 400px;
            background-color: #d9480f;
        }

        .right {
            height: 400px;
            width: 200px;
        }

        .left,
        .content,
        .right {
            font-size: 70px;
            line-height: 400px;
            text-align: center;
        }

        /* 清除浮动 */
        .clearfix:after {
            content: '';
            display: block;
            height: 0;
            clear: both;
            visibility: hidden;
        }

页面效果:
三列布局

等分布局(四种方案)

  1. 浮动+百分比
  <!-- 父元素清除浮动 -->
    <div class="container clearfix">
        <div class="item item1"></div>
        <div class="item item2"></div>
        <div class="item item3"></div>
        <div class="item item4"></div>
    </div>
        body {
            margin: 0;
        }

        .container {
            height: 400px;
            background-color: #eebefa;
        }

        .item {
            height: 100%;
            /* 开启浮动,每个元素占25%的宽度 */
            width: 25%;
            float: left;
        }

        .item1 {
            background-color: #eccc68;
        }

        .item2 {
            background-color: #a6c1fa;
        }

        .item3 {
            background-color: #fa7d90;
        }

        .item4 {
            background-color: #b0ff70;
        }

        /* 清除浮动 */
        .clearfix:after {
            content: '';
            display: block;
            height: 0;
            clear: both;
            visibility: hidden;
        }
  1. 行内块级+百分比方式
    <!-- 父元素清除浮动 -->
    <div class="container clearfix">
        <div class="item item1"></div>
        <div class="item item2"></div>
        <div class="item item3"></div>
        <div class="item item4"></div>
    </div>
        body {
            margin: 0;
        }

        .container {
            height: 400px;
            background-color: #eebefa;
        }

        .item {
            height: 100%;
            /* 将元素设为行内块级元素 */
            display: inline-block;
            /* 每个元素占24.5%的宽度 */
            width: 24.5%;
        }

        .item1 {
            background-color: #eccc68;
        }

        .item2 {
            background-color: #a6c1fa;
        }

        .item3 {
            background-color: #fa7d90;
        }

        .item4 {
            background-color: #b0ff70;
        }

        /* 清除浮动 */
        .clearfix:after {
            content: '';
            display: block;
            height: 0;
            clear: both;
            visibility: hidden;
        }
  1. Flex布局
    <!-- 父元素清除浮动 -->
    <div class="container clearfix">
        <div class="item item1"></div>
        <div class="item item2"></div>
        <div class="item item3"></div>
        <div class="item item4"></div>
    </div>
        body {
            margin: 0;
        }

        .container {
            height: 400px;
            background-color: #eebefa;
            /* 开启Flex布局 */
            display: flex;
        }

        .item {
            height: 100%;
            /* 每个元素占相同的宽度*/
            flex:1;
        }

        .item1 {
            background-color: #eccc68;
        }

        .item2 {
            background-color: #a6c1fa;
        }

        .item3 {
            background-color: #fa7d90;
        }

        .item4 {
            background-color: #b0ff70;
        }

        /* 清除浮动 */
        .clearfix:after {
            content: '';
            display: block;
            height: 0;
            clear: both;
            visibility: hidden;
        }
  1. Grid布局
    <!-- 父元素清除浮动 -->
    <div class="container clearfix">
        <div class="item item1"></div>
        <div class="item item2"></div>
        <div class="item item3"></div>
        <div class="item item4"></div>
    </div>
   body {
            margin: 0;
        }

        .container {
            height: 400px;
            background-color: #eebefa;
            /* 开启 grid 布局 */
            display: grid;
            grid-template-columns: repeat(4, 1fr);
            /* 使用 repeat 函数生成如下代码 */
            /* grid-template-columns: 1fr 1fr 1fr 1fr; */
        }

        .item {
            height: 400px;
        }

        .item1 {
            background-color: #eccc68;
        }

        .item2 {
            background-color: #a6c1fa;
        }

        .item3 {
            background-color: #fa7d90;
        }

        .item4 {
            background-color: #b0ff70;
        }

        /* 清除浮动 */
        .clearfix:after {
            content: '';
            display: block;
            height: 0;
            clear: both;
            visibility: hidden;
        }

页面效果:
等分布局

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值