高度已知,三栏布局,左栏和右栏宽度固定,中间自适应

243 阅读1分钟

flexbox布局方式

实现原理:首先定义三个区块,分别为左中右,并且统一设置高度为200px,然后在这三个区块的父元素中设置display:flex,设置左边栏和右边栏宽度为200px,中间区块设置flex:1

优点:比较完美的一种方式,在移动端基本都是使用这个布局方式,这是css3中的新的布局方式,当设置最小高度后,中间区块内容溢出时高度会自动撑开,左右两边的高度也可以跟着撑开

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <title>Title</title>

</head>

<style>

    html *{

        padding: 0;

        margin: 0;

    }

    .layout.flexbox article div{

        min-height: 200px;

    }

    .layout.flexbox .left-right-center{

        display: flex;

    }

    .left{

        width: 200px;

        background-color: red;

    }

    .right{

        width: 200px;

        background-color: blue;

    }

    .center{

        background-color: green;

        flex: 1;

    }

</style>

<body>

    <section class="layout flexbox">

        <article class="left-right-center">

            <div class="left"></div>

            <div class="center">flexbox解决方案</div>

            <div class="right"></div>

        </article>

    </section>

</body>

</html>

效果如下:拉动浏览器窗口的时候,中间宽度自动变化,左右边栏不会变化