侧边栏壁纸
博主头像
落叶人生博主等级

走进秋风,寻找秋天的落叶

  • 累计撰写 130562 篇文章
  • 累计创建 28 个标签
  • 累计收到 9 条评论
标签搜索

目 录CONTENT

文章目录

css中,在高度已知,写出三栏布局,其中左栏、右栏宽度各位300px,中间自适应

2022-12-31 星期六 / 0 评论 / 0 点赞 / 73 阅读 / 12774 字

解决方案主要有五种 首先写入全局样式 <style type="text/css"> html * { margin: 0; padding: 0;

. .. .

解决方案主要有五种

首先写入全局样式

.
<style type="text/css">      html * {        margin: 0;        padding: 0;      }      .layout {        margin-top: 20px;      }      .layout article div {        min-height: 100px;      }    </style>
.

 

1、用浮动解决方案

缺点:清除浮动,脱离文档流

优点:兼容性好

.
 <section class="layout float">      <style media="screen">        .layout.float .left {          float: left;          width: 300px;          background: red;        }        .layout.float .right {          float: right;          width: 300px;          background: blue;        }        .layout.float .center {          background: yellow;          text-align: center;        }      </style>      <article class="left-right-center">        <div class="left"></div>        <div class="right"></div>        <div class="center">          <h1>浮动解决方案</h1>          1、这是三栏布局中间部分 2、这是三栏布局中间部分        </div>      </article>    </section>
.

2、绝对定位解决方案

缺点:布局脱离文档流

优点:快捷

.
<section class="layout absolute">      <style media="screen">        .layout.absolute .left-center-right > div {          position: absolute;        }        .layout.absolute .left {          background: red;          width: 300px;          left: 0;        }        .layout.absolute .right {          background: blue;          width: 300px;          right: 0;        }        .layout.absolute .center {          background: yellow;          left: 300px;          right: 300px;          text-align: center;        }      </style>      <article class="left-center-right">        <div class="left"></div>        <div class="center">          <h2>绝对定位解决方案</h2>          1、这是三栏布局绝对定位中间部分 2、这是三栏布局绝对定位中间部分        </div>        <div class="right"></div>      </article>    </section>
.

3、flexbox布局解决方案

优点:为了解决绝对定位和浮动不足,基本比较完美,移动端基本是flexbox

.
<section class="layout flexbox">      <style>        .layout.flexbox {          margin-top: 150px;        }        .layout.flexbox .left-center-right {          display: flex;        }        .layout.flexbox .left {          width: 300px;          background: red;        }        .layout.flexbox .right {          width: 300px;          background: blue;        }        .layout.flexbox .center {          flex: 1;          background: yellow;          text-align: center;        }      </style>      <article class="left-center-right">        <div class="left"></div>        <div class="center">          <h2>flexbox解决方案</h2>          1、这是三栏布局flexbox中间部分 2、这是三栏布局flexbox中间部分        </div>        <div class="right"></div>      </article>    </section>
.

4、表格布局解决方案

 

缺点:当某个单元格高度超过表格时,其他单元格也会调整高度

 

优点:表格在很多场景中还是很适用的,兼容性很好,当需要兼容ie8时

 

.
 <section class="layout table">      <style>        .layout.table .left-center-right {          width: 100%;          display: table;          height: 100px;        }        .layout.table .left-center-right > div {          display: table-cell;        }        .layout.table .left {          width: 300px;          background: red;        }        .layout.table .center {          background: yellow;          text-align: center;        }        .layout.table .right {          width: 300px;          background: blue;        }      </style>      <article class="left-center-right">        <div class="left"></div>        <div class="center">          <h2>表格布局解决方案</h2>          1、这是三栏布表格布局中间部分 2、这是三栏布表格布局中间部分        </div>        <div class="right"></div>      </article>    </section>
.

5、grid布局解决方案

 

缺点:

 

优点:代码简化

 

.
 <section class="layout grid">      <style media="screen">        .layout.grid .left-center-right {          display: grid;          width: 100%;          grid-template-rows: 100px;          grid-template-columns: 300px auto 300px;        }        .layout.grid .left {          background: red;        }        .layout.grid .center {          background: yellow;          text-align: center;        }        .layout.grid .right {          background: blue;        }      </style>      <article class="left-center-right">        <div class="left"></div>        <div class="center">          <h2>网格布局解决方案</h2>          1、这是三栏布表网格布局中间部分 2、这是三栏布网格布局中间部分        </div>        <div class="right"></div>      </article>    </section>
. . .. .. .

广告 广告

评论区