实现三列布局

三列布局问题,即左右宽度固定,中间自适应;
提供三种方案:

  • 绝对定位 + 中间板块不给宽度
  • 两侧浮动 + 中间自动撑开
  • Flex布局

绝对定位 + 中间板块不给宽度

代码如下:

<style>
            div {
                border: 3px solid darkblue;
                height: 300px;              
            }
            .con{
                position: relative;
                height: 100%;
                text-align: center;
            }
            .left{
                position: absolute;
                width: 50px;
                left: 0px;
                top: 0px;
            }
            .right{
                position: absolute;
                width: 50px;
                right: 0px;
                top: 0px;
            }
        </style>
    </head>
    <body>
        <div class="con">
            <div class="left">左左左</div>
            <div class="mid">中中中</div>
            <div class="right">右右右</div>
        </div>
    </body>

两侧浮动 + 中间自动撑开

中间宽度利用margin撑出;
注意三个div的顺序排列;
代码如下:

        <style>
            div {
                border: 3px solid darkblue;
                height: 300px;              
            }
            .con{
                height: 100%;
                text-align: center;
            }
            .left{
                float: left;
                width: 50px;
            }
            .right{
                float: right;
                width: 50px;
            }
            .mid{
                margin: 0 53px;
                /* overflow: hidden;  使用这句触发BFC */
            }
        </style>
    </head>
    <body>
        <div class="con">
            <div class="left">左左左</div> 
            <div class="right">右右右</div>
            <div class="mid">中中中</div>
        </div>
    </body>

Flex布局

左右使用 flex-basis
中间使用 flex-grow
代码如下:

        div {
                border: 3px solid darkblue;
                height: 300px;              
            }
            .con{
                height: 100%;
                text-align: center;
                display: flex;
            }
            .left{
                flex-basis: 50px;
            }
            .right{
                flex-basis: 50px;
            }
            .mid{
                flex-grow: 1;
            }
        </style>
    </head>
    <body>
        <div class="con">
            <div class="left">左左左</div> 
            <div class="mid">中中中</div>
            <div class="right">右右右</div>
        </div>
    </body>
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 三列布局之全浮动方法 全浮动,使用calc设置宽度,不推荐使用calc,兼容不好,并且center不是优先加载 H...
    鲁女女阅读 349评论 1 2
  • 圣杯布局 1. DOM结构 首先定义出整个布局的DOM结构,主体部分是由container包裹的center,le...
    CodeMT阅读 2,866评论 0 35
  • 定位 1、流动模型(Flow) 流动(Flow)模型是默认的网页布局模式。也就是说网页在默认状态下的 HTML 网...
    jiujiumi阅读 211评论 0 0
  • 在移动设备出现之前,人们访问网站需要通过PC端的浏览器来实现。Web前端工程师主要解决的是页面在各型浏览器之间适配...
    Leesper阅读 1,114评论 0 13
  • 尘世有太多喧嚣 模糊不清,又近乎透明 我是一粒漂浮的尘埃,可能随时被削剥 在异乡的雨季,异常安静 通常,我愿意在这...
    柴道一阅读 230评论 0 2

友情链接更多精彩内容