美文网首页
CSS三栏布局实现,左右固定,中间自适应

CSS三栏布局实现,左右固定,中间自适应

作者: 木子方是个小太阳 | 来源:发表于2019-04-08 11:15 被阅读0次

一:Float元素浮动实现三栏布局

实现方式:左右元素浮动,中间元素左右marign值撑开两边距离。
例:


    .left,.right{
        width:200px;
        height:100px;
        background: pink;
        float: left;
    }
    .center{
        background:red;
    }
    .right{
        float: right;
    }

    <body>
        <div class="left">left</div>
        <div class="right">rigth</div>
        <div class="center">今天天气好晴朗,处处好风光!今天天气好晴朗,处处好风光!今天天气好晴朗,处处好风光!</div>
    </body>

此时看似没有问题,可是如果中间内容过多,超出左右两边高度,我们将看到文字环绕问题,如下如所示。

解决办法:

①:给中间元素,设置margin值,左右margin为左右浮动元素的宽度。
.left,.right{ width:200px; height:100px; background: pink; float: left; } .center{ background:red; margin-left:200px; margin-right:200px; } .right{ float: right; }
①:如果想要三栏高度保持一致,就给三栏元素设置相同高度;超出加垂直方向滚动条overflow-y:auto;

细心的同学可能发现,我们的DOM结构为左-右-中,而不是左中右,这是因为浏览器解决代码是从上往下执行,如果把.center放在中间,解析时因为它是个块元素,所以当解析.right元素时,它会脱离当前文档流从下一行开始,这时候就出现了最右侧DOM下沉现象。

此方法缺点:DOM结构改变了加载顺序,右边DOM优于中间DOM加载。

Position定位实现三栏布局

父元素相对定位,子元素绝对定位

.wrap{
          position: relative;
      }
      .left{
          position: absolute;
          top:0;
          left: 0;
          width: 200px;
          height: 100px;
          background:pink;
      }
      .right{
          position: absolute;
          top:0;
          right: 0;
          width: 200px;
          height: 100px;
          background:pink;
      }
      .center{
          margin:0 200px;
          background:red;

      }

      <div class="wrap">
          <div class="left">left</div>
          <div class="center">今天天气好晴朗,处处好风光!</div>
          <div class="right">rigth</div>
      </div>

补充flex左右布局,左边固定,右边自适应,并且两列等高自适应

   .main{
      width: 200px;
      display: flex; 
    }
    .title{
      width: 80px;
    }
    .content{
      flex:1;
    }
    <div class="main">
      <div class="title">我是标题</div>
      <div class="content">我说内容我说内容我说内容我说内容我说内容</div>
    </div>

相关文章

  • updating...

    CSS 1、三栏布局问题(左右固定宽度 中间自适应) flex grid float + margin 2、CSS...

  • 常见网页布局的介绍

    左侧固定,右侧自适应 右侧固定,左侧自适应 圣杯布局(左右固定,中间自适应) 中间固定 两侧自适应 等分布局 等分...

  • 初级前端css面试题整理

    1 css部分 1.怎么实现三列布局(左侧和右侧宽度固定,中间自适应) 3中方式: a:左右绝对定位,中间不给宽度...

  • css布局

    简单的布局问题 高度已知,三栏布局,要求左右宽度固定,中间自适应,怎么实现?

  • 三栏布局的四种实现方式-中间自适应

    左右固定,中间自适应,纯css的实现方式 200px 300px auto ...

  • 常见的三列布局(左右固定宽度,中间自适应)

    实现css中的三列布局,左右固定宽度,中间自适应。三列布局方式的关键是怎么样才能使得在伸缩浏览器窗口的时候让中间的...

  • 我还是要说的布局

    两栏布局 左边固定右边自适应 使用float布局 使用position布局    三栏布局 左右两边固定中间自适应...

  • CSS-布局5-Calc三列布局

    1、实现效果   Calc实现三列布局,中间自适应,左右固定宽度。 2、实现思路   中间宽度 计算出来 : ca...

  • 布局方式——2018-02-06

    一、圣杯(双飞翼)布局 要求:左右宽度固定,中间宽度自适应伸缩,并且中间先加载。代码实现:(定位实现) 二、等高布...

  • CSS 布局

    实现三栏布局:高度固定,中间自适应,左右宽度是 300px。(div 标签的位置) 布局一:圣杯布局 圣杯布局和双...

网友评论

      本文标题:CSS三栏布局实现,左右固定,中间自适应

      本文链接:https://www.haomeiwen.com/subject/wyhuiqtx.html