• 水平方向三栏布局


    高度已知,左右宽度固定为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;每一个网格的宽度

  • 相关阅读:
    理解inode
    贝叶斯公式与拼写检查器
    《C程序设计语言》第四章 函数和程序结构
    MIT《计算机科学与编程导论》课堂笔记
    很牛的牛顿迭代法
    开发一个小工具重温C#经典问题
    斯坦福《编程方法学》环境搭建及常见问题
    看Sybase官方手册学索引工作原理
    学习编程的方法、软件和工具
    大师里奇留给了我们什么
  • 原文地址:https://www.cnblogs.com/sghy/p/9629035.html
Copyright © 2020-2023  润新知