美文网首页
三栏布局(水平方向)的五种方案

三栏布局(水平方向)的五种方案

作者: 陈裔松的技术博客 | 来源:发表于2018-11-26 13:23 被阅读0次

三栏布局是开发中常用的布局方式,这里总结了三栏布局(水平方向)的五种方案

题目:假设高度已知,其中左栏,右栏宽度各为300px,中间自适应。


微信图片_20181126195618.png

方案1:浮动解决方案

原理:设置左边元素为左浮动,右边元素为有浮动,左边/右边元素宽度都为300px,中间元素会自动占据剩余空间。

  • html部分
    <section class="layout">
        <div class="left"></div>
        <div class="right"></div>
        <div class="center">
            <h1>浮动解决方案</h1>
            1.这是三栏布局中间部分
            2.这是三栏布局中间部分
        </div>
    </section>
  • css部分
        .layout div{
            min-height: 100px;
        }
        .left{
            float: left;
            width: 300px;
            background-color: red;
        }
        .right{
            float: right;
            width: 300px;
            background-color: blue;
        }
        .center{
            background-color: yellow;
        }
  • 显示结果


    微信图片_20181126150524.png

方案2:绝对定位解决方案

原理:设置所有子元素为绝对定位,左边/右边元素宽度都为300px,中间元素通过left:300px,right:300px定位到中间,而且宽度会自动占据剩余空间。

  • html部分
    <section class="layout">
        <div class="left"></div>
        <div class="right"></div>
        <div class="center">
            <h1>绝对定位解决方案</h1>
            1.这是三栏布局中间部分
            2.这是三栏布局中间部分
        </div>
    </section>
  • css部分
        .layout div{
            min-height: 100px;
            position: absolute;
        }
        .left{
            position: absolute;
            left: 0;
            width: 300px;
            background-color: red;
        }
        .right{
            position: absolute;
            right: 0;
            width: 300px;
            background-color: blue
        }
        .center{
            left: 300px;
            right: 300px;
            background-color: yellow;
        }
  • 显示结果


    微信图片_20181126150528.png

方案3:flexbox解决方案

原理:设置容器为flexbox,左边/右边元素宽度都为300px,中间元素通过flex:1属性占据剩余空间。

  • html部分
    <section class="layout">
        <div class="left"></div>
        <div class="center">
            <h1>flexbox解决方案</h1>
            1.这是三栏布局中间部分
            2.这是三栏布局中间部分
        </div>
        <div class="right"></div>
    </section>
  • css部分
        .layout div{
            min-height: 100px;
        }
        .layout{
            display: flex;
        }
        .left{
            width: 300px;
            background-color: red;
        }
        .right{
            width: 300px;
            background-color: blue
        }
        .center{
            flex: 1;
            background-color: yellow;
        }
  • 显示结果


    微信图片_20181126150531.png

方案4:表格布局解决方案

原理:设置容器为表格,宽度为100%,与页面宽度相同。左边/右边元素宽度都为300px,剩余的宽度会自动分配给中间元素

  • html部分
    <section class="layout">
        <div class="left"></div>
        <div class="center">
            <h1>表格布局解决方案</h1>
            1.这是三栏布局中间部分
            2.这是三栏布局中间部分
        </div>
        <div class="right"></div>
    </section>
  • css部分
        .layout div{
            display: table-cell;
        }
        .layout{
            width: 100%;
            height: 100px;
            display: table;
        }
        .left{
            width: 300px;
            background-color: red;
        }
        .right{
            width: 300px;
            background-color: blue
        }
        .center{
            background-color: yellow;
        }
  • 显示结果


    微信图片_20181126150535.png

方案5:网格布局解决方案

原理:设置容器为网格,宽度为100%,与页面宽度相同。左边/右边两列的宽度都为300px,剩余的空间会自动分配给中间列。

  • html部分
    <section class="layout">
        <div class="left"></div>
        <div class="center">
            <h1>网格布局解决方案</h1>
            1.这是三栏布局中间部分
            2.这是三栏布局中间部分
        </div>
        <div class="right"></div>
    </section>
  • css部分
        .layout{
            width: 100%;
            display: grid;
            grid-template-rows: 100px;
            grid-template-columns: 300px auto 300px;
        }
        .left{
            background-color: red;
        }
        .right{
            background-color: blue
        }
        .center{
            background-color: yellow;
        }
  • 显示结果


    微信图片_20181126150538.png

相关文章

  • 移动端-适配问题

    适配方案 固定高度,宽度自适应垂直方向使用固定的值,水平方向使用弹性布局,元素采用定值、百分比、flex布局等。这...

  • 三栏布局(水平方向)的五种方案 - 延伸

    上一篇文章三栏布局总结了三栏布局(水平方向)的五种方案,这里对这五种方案做一些延伸,分析一下各个方案的优缺点。 首...

  • 三栏布局(水平方向)的五种方案

    三栏布局是开发中常用的布局方式,这里总结了三栏布局(水平方向)的五种方案 题目:假设高度已知,其中左栏,右栏宽度各...

  • 4- 移动端 REM+JS 动态适配页面

    1.百分比+固定高度布局方案 固定屏幕为理想视口宽度 少许的媒体查询设置字体 水平百分比布局 水平方向部分也可以使...

  • flex布局

    Flex布局特点 块级布局侧重垂直方向、行内布局侧重水平方向,flex布局是与方向无关的。 flex布局可以实现空...

  • flex 布局

    flex 布局特点 块级布局侧重垂直方向、行内布局侧重水平方向,flex布局与方向无关 flex布局可以实现空间自...

  • Flex布局

    Flex布局 一种新的布局方式-Flex布局块级布局侧重垂直方向,行内布局侧重水平方向,flex布局是与方向无关的...

  • 页面架构

    布局解决方案 水平居中布局 垂直居中布局 水平垂直都居中的布局 多列布局 多列等分布局 多列等高布局 在多列布局的...

  • Flutter学习总结之四 常见Widget及页面跳转

    一.常见布局方式 Row,是水平方向的线性布局(linearlayout) Column,是垂直方向的线性布局(l...

  • Flutter 线性布局 Row和Column

    Row:水平方向的线性布局 Column:垂直方向的线性布局 Row 和 Column 都继承自弹性布局 Flex...

网友评论

      本文标题:三栏布局(水平方向)的五种方案

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