zoukankan      html  css  js  c++  java
  • css布局1:左右宽度固定中间自适应html布局解决方案(同一侧宽度固定,另一侧自适应)

    https://www.jb51.net/web/639884.html

    本文介绍了详解左右宽度固定中间自适应html布局解决方案,分享给大家,具体如下:

    a.使用浮动布局

    html结构如下(为什么中间的网格宽度显示的和实际的不一样?怎么造成的;解决方法就是让中间的非浮动元素可以看到两边的浮动元素,例如为.center加overflow:hidden)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    <div class="box">
        <div class="left">left</div>
        <div class="right">right</div>
        <div class="center">center</div>
    </div>  
    //此处注意要先渲染左、右浮动的元素才到中间的元素。元素浮动后剩余兄弟块级元素会占满父元素的宽度
    <style>
       .box{
            height:200px;
            800px;
        }   
        .left{
            float:left;
            300px;
        }
        .right{
            float:right;
            300px;
        }
    </style>

    b.使用固定定位

    html结构如下

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    <div class="box">
        <div class="left">left</div>
        <div class="right">right</div>
         <div class="center">center</div>
    </div>
    //和浮动布局同理,先渲染左右元素,使其定位在父元素的左右两端,剩余的中间元素占满父元素剩余宽度。
    <style>
        .box{
            position: relative;
          }
          .left{
            position: absolute;
             100px;
            left: 0;
          }
          .right{
            100px;
            position: absolute;
            right: 0;
          }
          .center{
            margin: 0 100px;
            background: red;
          }
    </style>

    c.表格布局

    将父元素display:table,子元素display:table-cell,会将它变为行内块。

    这种布局方式的优点是兼容性好。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    <div class="box">
      <div class="left">
        left
      </div>
      <div class="center">
        center
      </div>
      <div class="right">
        right
      </div>
    </div>
    <style>
        .box{
            display: table;
             100%;
          }
          .left{
            display: table-cell;
             100px;
            left: 0;
          }
          .right{
            100px;
            display: table-cell;
          }
          .center{
             100%;
            background: red;
          }
    </style>

    d.弹性布局

    父元素display:flex子元素会全部并列在一排。

    子元素中flex:n的宽度会将父元素的宽度/n

    如flex:1,宽度就等于父元素高度。

    弹性布局的缺点是兼容性不高,目前IE浏览器无法使用弹性布局

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    <div class="box">
      <div class="left">
        left
      </div>
      <div class="center">
        center
      </div>
      <div class="right">
        right
      </div>
    </div>
    <style>
        .box{
            display: flex;
             100%;
          }
          .left{
           
             100px;
            left: 0;
          }
          .right{
            100px;
          }
          .center{
            flex:1;
          }
    </style>

    e.网格布局

    父元素display:grid;

    grid-templatecolumns:100px auto 100px;

    依次为第一个子元素宽100px 第二个自适应 第三个100px;

    网格布局的优点是极为简便,直接通过父元素样式决定,缺点是兼容性不高。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    <div class="box">
      <div class="left">
        left
      </div>
      <div class="center">
        center
      </div>
      <div class="right">
        right
      </div>
    </div>
    <style>
      .box{
            display: grid;
            grid-template-columns: 100px auto 100px;
             100%;
          }
    </style>
  • 相关阅读:
    字符数组数据映射转换到实体对象model注解方式 demo
    字符数组转换及数字求和 java8 lambda表达式 demo
    java8 Lambda及Stream学习笔记
    java读取txt文件行的两种方式对比
    sftp jsch文件移动备份的思路
    APOI2009-抢掠计划
    NOIP2011
    省选算法(转)
    割点
    实验十 团队作业6:团队项目用户验收&Beta冲刺
  • 原文地址:https://www.cnblogs.com/cui-ting/p/11072137.html
Copyright © 2011-2022 走看看