zoukankan      html  css  js  c++  java
  • CSS三列布局之左右宽度固定,中间元素自适应问题

    方法一:靠浮动

    使用浮动,先渲染左右两个元素,分别让他们左右浮动,然后再渲染中间元素,设置它的margin左右边距分别为左右两个元素的宽度。
    html部分(注意:此方法中间元素必须放在最后位置!)
    <div class="container">
      <div class="left"></div>
      <div class="right"></div>
      <div class="center"></div>
    </div>
    
    CSS部分
    *{
      margin: 0;
      padding: 0;
    }
    .left,.right{
       200px;
      height: 200px;
    }
    .left{
      float: left;
      background-color: red;
    }
    .right{
      float: right;
      background-color: blueviolet;
    }
    .center{
      margin:0 200px;
      height: 200px;
      background-color: yellowgreen;
    }
    
    效果展示:

    方法二:靠绝对定位

    使用定位方式,只要把左右两个元素分别使用绝对定位,left:0;right:0;中间元素设置margin左右边距为左右两个元素的宽度即可
    html部分
    <div class="container">
      <div class="left"></div>
      <div class="center"></div>
      <div class="right"></div>
    </div>
    
    CSS部分
    *{
      margin: 0;
      padding: 0;
    }
    .left,.right{
       200px;
      height: 200px;
    }
    .left{
      position: absolute;
      left: 0;
      top: 0;
      background-color: red;
    }
    .right{
      position: absolute;
      right: 0;
      top: 0;
      background-color: blueviolet;
    }
    .center{
      margin:0 200px;
      height: 200px;
      background-color: yellowgreen;
    }
    
    效果展示:

    方法三:CSS3的flex布局方法

    该方式的思想是设置一个弹性容器包裹三个元素,并将这个容器设置为水平排列(flex-flow:row),左右两边元素设置固定宽度,中间元素设置为flex:1;。
    html部分
    <div class="container">
      <div class="left"></div>
      <div class="center"></div>
      <div class="right"></div>
    </div>
    
    CSS部分
    *{
      margin: 0;
      padding: 0;
    }
    .container{
      display: flex;
      flex-direction: row;
    }
    .left,.right{
       200px;
      height: 200px;
    }
    .left{
      background-color: red;
    }
    .right{
      background-color: blueviolet;
    }
    .center{
      flex: 1;
      height: 200px;
      background-color: yellowgreen;
    }
    
    效果展示:

  • 相关阅读:
    uva 1416 (SPFA) **月赛第E题的原题**
    uva 10917 (Dijsktra+记忆化搜索) **月赛第D题的原题**
    uva 11478(二分+差分约束系统)
    uva 11374(Dijkstra) HappyNewYear!!!
    Codeforces GoodBye2013 解题报告
    Codeforces Round #222 (Div. 2) 解题报告
    uva 515(差分约束)
    uva 10273(模拟)
    uva 10985(floyd+dfs)
    uva 10594(最小费用最大流)
  • 原文地址:https://www.cnblogs.com/mountboy/p/13529542.html
Copyright © 2011-2022 走看看