时间: 2020-08-25|tag:29次围观|0 条评论

高度已知,三栏布局,左右个300px,中间自适应

方法一:

3、CSS三栏布局,中间自适应的多种方法插图
效果图1
3、CSS三栏布局,中间自适应的多种方法插图1
效果图2
3、CSS三栏布局,中间自适应的多种方法插图2
效果图3
<!DOCTYPE html><html><head>    <title>浮动解决方案</title>    <style>        .layout article div {            min-height: 100px;        }        .layout .left {            float: left;            width: 300px;            background: red;        }        .layout .right {            float: right;            width: 300px;            background: blue;        }        .layout .center {            background: yellow;        }    </style></head><body>    <section class="layout float">        <article class="left-right-center">            <div class="left"></div>            <div class="right"></div>            <div class="center">                <h1>浮动解决方案</h1>            </div>        </article>    </section></body></html>

浮动方法
缺点:清除浮动,脱离文档流,
优点:兼容性好
浮动的基本原理,遮挡,创建bfc

方法二:

3、CSS三栏布局,中间自适应的多种方法插图3
效果图1
3、CSS三栏布局,中间自适应的多种方法插图4
效果图2
3、CSS三栏布局,中间自适应的多种方法插图5
效果图3
<!DOCTYPE html><html><head>    <title>绝对定位解决方法</title>    <style>        .layout .left-right-center>div {            min-height: 100px;            position: absolute;        }        .layout .left {            left: 0;            width: 300px;            background: red;        }        .layout .center {            left: 300px;            right: 300px;            background: yellow;        }        .layout .right {            right: 0;            width: 300px;            background: blue;        }           </style></head><body>    <section class="layout absolute">        <article class="left-right-center">            <div class="left"></div>            <div class="right"></div>            <div class="center">                <h1>绝对定位解决方法</h1>            </div>        </article>    </section></body></html>

绝对定位
优点:快捷
缺点:子元素脱离文档流,可使用性差
方法三:

3、CSS三栏布局,中间自适应的多种方法插图6
效果图1
3、CSS三栏布局,中间自适应的多种方法插图7
效果图2

flexbox是让所有弹性盒模型对象的子元素都有相同的长度,且忽略它们内部的内容。

<!DOCTYPE html><html><head>    <meta charset="UTF-8"/>    <title></title>    <style>        .layout {            display: flex;            flex-direction: row;            min-height: 100px;        }        .layout  .left {            width: 300px;            background: red;        }        .layout .center {             flex: 1;             background: yellow;        }        .layout .right {            width: 300px;            background: blue;        }    </style></head><body>    <section class="layout flex">        <div class="left"></div>        <div class="center">            <h>flex解决方案</h>        </div>        <div class="right"></div>           </section></body></html>

flex
优点:比较完美
可以实现中间高度不设定,自动增加高度
方法四:

3、CSS三栏布局,中间自适应的多种方法插图8
效果图1

3、CSS三栏布局,中间自适应的多种方法插图9
效果图2
<!DOCTYPE html><html><head>    <meta charset="UTF-8"/>    <title></title>    <style>        .layout article div{            min-height: 100px;        }        .layout .left-right-center {            width: 100%;            display: table;            height: 100px;        }        .layout .left-right-center>div {            display: table-cell;        }        .layout  .left {            width: 300px;            background: red;        }        .layout .center {            background: yellow;        }        .layout .right {            width: 300px;            background: blue;        }    </style></head><body>    <section class="layout flex">        <article class="left-right-center">            <div class="left"></div>            <div class="center">                <h>table解决方案</h>            </div>            <div class="right"></div>               </article>          </section></body></html>

表格布局
优点:容易做到,兼容性好,pc兼容ie8,flex不适用,表格布局可以,
缺点:每个部分理解为单元格,高度超出时,两侧同时增高
可以实现中间高度不设定,自动增加高度
方法五:

3、CSS三栏布局,中间自适应的多种方法插图10
效果图1

3、CSS三栏布局,中间自适应的多种方法插图11
效果图2

3、CSS三栏布局,中间自适应的多种方法插图12
效果图3
<!DOCTYPE html><html><head>    <meta charset="UTF-8"/>    <title></title>    <style>        .layout article div{            min-height: 100px;        }        .layout .left-right-center {            display: grid;            width: 100%;            grid-template-rows: 100px;            grid-template-columns: 300px auto 300px;        }        .layout  .left {            background: red;        }        .layout .center {            background: yellow;        }        .layout .right {            background: blue;        }    </style></head><body>    <section class="layout flex">        <article class="left-right-center">            <div class="left"></div>            <div class="center">                <h>grid网格布局解决方案</h>            </div>            <div class="right"></div>               </article>          </section></body></html>

网格布局
优点:新技术,css标准化,不用模拟做网格,代码量简化

文章转载于:https://www.jianshu.com/p/260863abb0ca

原著是一个有趣的人,若有侵权,请通知删除

本博客所有文章如无特别注明均为原创。
复制或转载请以超链接形式注明转自起风了,原文地址《3、CSS三栏布局,中间自适应的多种方法
   

还没有人抢沙发呢~