zoukankan      html  css  js  c++  java
  • 左右固定,中间自适应的三栏式布局五种写法

    三栏式布局是工作中常用的布局方式,三栏式布局有多种写法,作为前端开发,对布局的了解也是一项基本功,

    下面是整理的五种三栏式布局的基本写法

    公共样式

     //清除默认样式
     html *{padding: 0;margin:0;}
    //layout公共样式
    .layout{margin-top:20px;}
    .layout div{min-height: 100px;}

    1. 浮动布局(浮动会是文档脱离文档流,需要清浮动)

    <section class="layout float">
        <style>
            .layout.float .left{float: left; 300px;background: red;}
            .layout.float .right{float: right; 300px;background: blue;}
            .layout.float .center{background: yellow;}
        </style>
        <article class="con">
            <div class="left"></div>
            <div class="right"></div>
            <div class="center">
                <h1>浮动布局</h1>
                这是中间部分
            </div>
    
        </article>
    </section>

    2. 绝对定位布局(绝对定位也会脱离文档流)

    <section class="layout absolute">
        <style>
            .layout.absolute .con>div{position: absolute;}
            .layout.absolute .left{left:0; 300px;background: red;}
            .layout.absolute .right{right:0; 300px;background: blue;}
            .layout.absolute .center{background: yellow;left: 300px;right: 300px;}
        </style>
        <article class="con">
            <div class="left"></div>
            <div class="center">
                <h1>绝对定位布局</h1>
                这是中间部分
            </div>
            <div class="right"></div>
        </article>
    </section>

    3. flex布局(css3的新语法,pc兼容性问题,常用于移动端,中间被内容撑开高度时,左右两边的高度也能同中间保持一致)

    <section class="layout flexbox">
        <style>
        .layout.flexbox{margin-top: 140px;}
            .layout.flexbox .con{display: flex;}
            .layout.flexbox .left{ 300px;background: red;}
            .layout.flexbox .right{ 300px;background: blue;}
            .layout.flexbox .center{background: yellow;flex: 1;}
        </style>
        <article class="con">
            <div class="left"></div>
            <div class="center">
                <h1>flex布局</h1>
                这是中间部分
            </div>
            <div class="right"></div>
        </article>
    </section>

    4. 表格布局(中间被内容撑开高度时,左右两边的高度也能同中间保持一致)

    <section class="layout table">
        <style>
        .layout.table .con{ 100%;display: table;height: 100px;}
        .layout.table .con>div{display: table-cell;}
        .layout.table .left{ 300px;background: red;}
        .layout.table .right{ 300px;background: blue;}
        .layout.table .center{background: yellow;}
        </style>
        <article class="con">
            <div class="left"></div>
            <div class="center">
                <h1>表格布局</h1>
                这是中间部分
            </div>
            <div class="right"></div>
        </article>
    </section>

    5.网格布局(新语法,代码量少)

    <section class="layout grid">
        <style>
        .layout.grid .con{display: grid; 100%;grid-template-rows: 100px;grid-template-columns: 300px auto 300px;}
        .layout.grid .left{background: red;}
        .layout.grid .right{background: blue;}
        .layout.grid .center{background: yellow;}
        </style>
        <article class="con">
            <div class="left"></div>
            <div class="center">
                <h1>网格布局</h1>
                这是中间部分
            </div>
            <div class="right"></div>
        </article>
    </section>
  • 相关阅读:
    linux内核编译步骤
    Linux strace命令
    通过Wifi调试Android应用
    [Java 7][msvcr100.dll] Error when load Eclipse
    Cobar 关系型数据的分布式处理系统
    升级SUSE Linux内核的完整步骤!
    Qt 5.7 亮瞎眼的更新
    QT5.11下载与安装教程
    Delphi 对象模型学习笔记(转)
    内存共享【Delphi版】
  • 原文地址:https://www.cnblogs.com/leiting/p/8195966.html
Copyright © 2011-2022 走看看