常见的五种CSS三列布局

前言:本文介绍五种常见的三列布局,主要是两侧定宽,中间自适应,其他情况大同小异。

方式一:float

HTML代码:

<div class="layout-float">
    <div class="left">左边</div>
    <div class="center">这是中间</div>
    <div class="right">右边</div>
</div>

CSS代码:

<style>
    .left {
        float: left;
        width: 300px;
        background-color: blue;
    }
    .right {
        float: right;
        width: 300px;
        background-color: blue;
    }
     .center {
        background-color: red;
    }
</style>            

方式二:table布局,非HTML中<table>标签

HTML代码:

<div class="layout-table">
    <div class="left"></div>
    <div class="center">这是中间</div>
    <div class="right"></div>
</div>

CSS代码:

<style>
    .layout-table{
        width: 100%;
        display: table;
        height: 100px;
    }
    .layout-table div {
        display: table-cell;
    }
    .left {
        width: 300px;
        background-color: blue;
    }
    .right {
        width: 300px;
        background-color: red;
    }
    .center {
        background-color: blue;
    }
</style>    

方式三:flex布局

HTML代码:

<div class="layout-flexbox">
    <div class="left"></div>
    <div class="center">这是中间</div>
    <div class="right"></div>
</div>

CSS代码:

<style>
    .layout-flexbox{
        display: flex;
    }

    .left {
        width: 300px;
        background-color: blue;
    }

    .center {
        flex: 1;
        background-color: green;
    }

    .right {
        width: 300px;
        background-color: blue;
    }
</style>

方式四:grid布局

HTML代码:

<div class="layout-grid">
    <div class="left"></div>
    <div class="center">这是中间</div>
    <div class="right"></div>
</div>

CSS代码:

<style>
    .layout-grid{
        display: grid;
        width:100%;
        grid-template-rows:100px;
        grid-template-colums:300px auto 300px;
    }
    .left {
        background-color: blue;
    }
    .center {
        background-color: green;
    }
    .right {
        background-color: blue;
    }
</style>

方式五:绝对布局

HTML代码:

<div class="layout-absolute">
    <div class="left"></div>
    <div class="center">这是中间</div>
    <div class="right"></div>
</div>

CSS代码:

<style>
    .layout-absolute div{
        position: absolute;
    }
    .left {
        left:0;
        width:300px;
        background-color: blue;
    }
    .center {
        left:300px;
        right:300px;
        background-color: green;
    }
    .right {
        width:300px;
        right:0;
        background-color: blue;
    }
</style>        

 五种方法的优缺点:

float:兼容性较好,一般需要清除浮动

table:兼容性较好,SEO不太友好

grid:新技术,对旧浏览器兼容不太好,代码简洁

absolute:方便易用,脱离文档流,可使用性较差

flex:没什么明显缺点,且移动端友好

猜你喜欢

转载自www.cnblogs.com/dzwonline/p/9163019.html