zoukankan      html  css  js  c++  java
  • 水平方向三栏布局

    高度已知,左右宽度固定为200px,中间自适应。

    方案一:浮动

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
        <style>
            *{
                padding: 0;
                margin: 0;
            }
            .wrap div{
                min-height: 200px;
            }
            .left{
                float: left;
                width: 200px;
                background: green;
            }
            .center{
                background: #999;
            }
            .right{
                float: right;
                width: 200px;
                background: red;
            }
        </style>
    </head>
    <body>
        <div class="wrap">
            <div class="left"></div>
            <div class="right"></div>
            <div class="center">
                1.这是三栏布局的浮动解决方案;
                2.这是三栏布局的浮动解决方案;
                3.这是三栏布局的浮动解决方案;
                4.这是三栏布局的浮动解决方案;
                5.这是三栏布局的浮动解决方案;
                6.这是三栏布局的浮动解决方案;
            </div>
        </div>
    </body>
    </html>

    此方式注意一点:书写div时,中间自适应的部分,写在left和right之后

    方案二:绝对定位

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
        <style>
            *{
                padding: 0;
                margin: 0;
            }
            .wrap{
                position: relative;
            }
            .wrap div{
                min-height: 200px;
            }
            .left{
                position: absolute;
                left: 0;
                top: 0;
                width: 200px;
                background: green;
            }
            .center{
                position: absolute;
                left: 200px;
                right: 200px;
                top: 0;
                background: #999;
            }
            .right{
                position: absolute;
                right: 0;
                top: 0;
                width: 200px;
                background: red;
            }
        </style>
    </head>
    <body>
        <div class="wrap">
            <div class="left"></div>
            <div class="center">
                1.这是三栏布局的绝对定位解决方案;
                2.这是三栏布局的绝对定位解决方案;
                3.这是三栏布局的绝对定位解决方案;
                4.这是三栏布局的绝对定位解决方案;
                5.这是三栏布局的绝对定位解决方案;
                6.这是三栏布局的绝对定位解决方案;
            </div>
            <div class="right"></div>
        </div>
    </body>
    </html>

    注意center的定位需同时进行左右定位

    方案三:flex布局

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
        <style>
            *{
                padding: 0;
                margin: 0;
            }
            .wrap{
                display: flex;
            }
            .wrap div{
                min-height: 200px;
            }
            .left{
                width: 200px;
                background: green;
            }
            .center{
                flex:1;
                background: #999;
            }
            .right{
                width: 200px;
                background: red;
            }
        </style>
    </head>
    <body>
        <div class="wrap">
            <div class="left"></div>
            <div class="center">
                1.这是三栏布局的flex解决方案;
                2.这是三栏布局的flex解决方案;
                3.这是三栏布局的flex解决方案;
                4.这是三栏布局的flex解决方案;
                5.这是三栏布局的flex解决方案;
                6.这是三栏布局的flex解决方案;
            </div>
            <div class="right"></div>
        </div>
    </body>
    </html>

    父级使用display:flex;定宽的直接给width设置为固定值;不定宽的设置flex:1

    方案四:浮动加计算

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
        <style>
            *{
                padding: 0;
                margin: 0;
            }
            .wrap div{
                min-height: 200px;
                float: left;
            }
            .left{
                width: 200px;
                background: green;
            }
            .center{
                width: calc(100% - 400px);
                background: #999;
            }
            .right{
                width: 200px;
                background: red;
            }
        </style>
    </head>
    <body>
        <div class="wrap">
            <div class="left"></div>
            <div class="center">
                1.这是三栏布局的浮动+计算解决方案;
                2.这是三栏布局的浮动+计算解决方案;
                3.这是三栏布局的浮动+计算解决方案;
                4.这是三栏布局的浮动+计算解决方案;
                5.这是三栏布局的浮动+计算解决方案;
                6.这是三栏布局的浮动+计算解决方案;
            </div>
            <div class="right"></div>
        </div>
    </body>
    </html>

    左中右向左浮动,宽度不固定部分使用计算方式(calc(100% - 400px))即可

    方案五:表格布局

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
        <style>
            *{
                padding: 0;
                margin: 0;
            }
            .wrap{
                display: table;
            }
            .wrap div{
                display: table-cell;
                min-height: 200px;
            }
            .left{
                width: 200px;
                background: green;
            }
            .center{
                background: #999;
            }
            .right{
                width: 200px;
                background: red;
            }
        </style>
    </head>
    <body>
        <div class="wrap">
            <div class="left"></div>
            <div class="center">
                1.这是三栏布局的表格布局解决方案;
                2.这是三栏布局的表格布局解决方案;
                3.这是三栏布局的表格布局解决方案;
                4.这是三栏布局的表格布局解决方案;
                5.这是三栏布局的表格布局解决方案;
                6.这是三栏布局的表格布局解决方案;
            </div>
            <div class="right"></div>
        </div>
    </body>
    </html>

    父级display:table;子级display:table-cell;宽度固定的给宽度,宽度不固定的不给宽度

    方案六:网格布局(grid)

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
        <style>
            *{
                padding: 0;
                margin: 0;
            }
            .wrap{
                width: 100%;
                display: grid;
                grid-template-rows: 200px;
                grid-template-columns: 200px auto 200px;
            }
            .left{
                background: green;
            }
            .center{
                background: #999;
            }
            .right{
                background: red;
            }
        </style>
    </head>
    <body>
        <div class="wrap">
            <div class="left"></div>
            <div class="center">
                1.这是三栏布局的网格布局解决方案;
                2.这是三栏布局的网格布局解决方案;
                3.这是三栏布局的网格布局解决方案;
                4.这是三栏布局的网格布局解决方案;
                5.这是三栏布局的网格布局解决方案;
                6.这是三栏布局的网格布局解决方案;
            </div>
            <div class="right"></div>
        </div>
    </body>
    </html>

    父级display:grid;grid-template-rows设置网格的高度;grid-template-columns: 200px auto 200px;每一个网格的宽度

  • 相关阅读:
    把一元可以分解成几个1毛,2毛,5毛?
    记录集导出到Excel方法
    MySQL数据库加密与解密:
    运行时错误'430': 类不支持自动化或不支持期望的接口。New ADODB.Connection问题
    instrrev 和instr 区别vb
    解决用 VB 中用 ADO 访问 数据库时 SQL 查询处理 Null 值的问题( 使用 iff(isNull(字段), 为空时的值,不为空时的值) 来处理)
    Mysql SQL CAST()函数
    MySQL CAST与CONVERT 函数的用法
    一些网页链接
    git上传时出现ERROR: Repository not found.的解决办法
  • 原文地址:https://www.cnblogs.com/sghy/p/9629035.html
Copyright © 2011-2022 走看看