CSS 利用table实现五种常用布局

布局一:

  • 效果:
  • 代码:

html:

<div class="header">header</div>
<div class="main">main</div>
<div class="footer">footer</div>

注意:div中要有内容,不然显示不出来

css:

body{
  margin:0;
  padding:0;
  width:100%;
  min-height:100vh;
  display:table;
  text-align:center;
}
.header,.main,.footer{
  display:table-row;
}
.header{
  height:50px;
  background:tomato;
}
.main{
  background:skyblue;
}
.footer{
  height:50px;
  background:#9d70ff;
}

布局二:

  • 效果:
  • 代码:

html:

<div class="header">header</div>
<div class="main">
  <div class="left">left</div>
  <div class="right">right</div>
</div>
<div class="footer">footer</div>

css:

body{
  margin:0;
  padding:0;
  width:100%;
  min-height:100vh;
  display:table;
  text-align:center;
}
.header,.main,.footer{
  display:table-row;
}
.header{
  height:50px;
  background:tomato;
}
.main{
  width:100%;
  display:table;
  height:calc(100vh - 100px);
}
.main .left{
  width:300px;
  display:table-cell;
  background:#fcea96;
}
.main .right{
  display:table-cell;
  background:skyblue;
}
.footer{
  height:50px;
  background:#9d70ff;
}

注意:.main的height属性中的100px是header和footer的高度之和


布局三:

  • 效果:
  • 代码:

html:

<div class="left">left</div>
<div class="right">
  <div class="header">header</div>
  <div class="main">main</div>
  <div class="footer">footer</div>
</div>

css:

body{
  margin:0;
  padding:0;
  min-height:100vh;
  display:table;
  text-align:center;
}
.left{
  display:table-cell;
  width:200px;
  background:tomato;
}
.right{
  display:table;
  width:calc(100vw - 200px);
  height:100vh;
}
.header,.main,.footer{
  display:table-row;
}
.header{
  height:50px;
  background:skyblue;
}
.main{
  background:#fcea96;
}
.footer{
  height:50px;
  background:#9d70ff;
}

布局四(双栏布局,例子为左边固定,右边自适应):

  • 效果:
  • 代码:

html:

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

css:

body{
  margin:0;
  padding:0;
  width:100%;
  height:100vh;
  display:table;
  text-align:center;
}
.left,.right{
  display:table-cell;
}
.left{
  width:300px;
  background:tomato;
}
.right{
  background:skyblue;
}

布局五(三栏布局,例子为左边固定,右边固定,中间自适应):

  • 效果:
  • 代码:

html:

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

css:

body{
  margin:0;
  padding:0;
  width:100%;
  height:100vh;
  display:table;
  text-align:center;
}
.left,.middle,.right{
  display:table-cell;
}
.left{
  width:300px;
  background:tomato;
}
.middle{
  background:#ffe69e;
}
.right{
  width:200px;
  background:skyblue;
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,805评论 1 92
  • 收听音频,戳链接,旧号itclan已暂停使用,欢迎关注微信itclanCoder公众号可收听更多音频 前言 关于网...
    itclanCoder阅读 8,214评论 3 30
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,385评论 25 708
  • 我猜 你就是芒果味炒酸奶 里面的芒果粒儿 我一勺又一勺 艰难找寻你 只为得到被你的香甜 腻死的一会儿欣喜 我猜 你...
    YNiiiiii阅读 259评论 0 4
  • 课程性质:初级汉语课 教学时间:2017.9.5 10:10--11:45 教学对象:南非/大学生 教学人数:30...
    沈小牵阅读 385评论 0 0