首先来看看display: table的兼容性:

可以看到,除非你还要跟IE6/7较劲,否则display: table不需考虑兼容性。

接下来看看关于table的display可选值:
  • table:指定对象作为块元素级的表格,相当于html标签<table>

  • inline-table:指定对象作为内联元素级的表格,相当于html标签<table>

  • table-caption:指定对象作为表格标题,相当于html标签<caption>

  • table-cell:指定对象作为表格单元格,相当于html标签<td>

  • table-row:指定对象作为表格行,相当于html标签<tr>

  • table-row-group:指定对象作为表格行组,相当于html标签<tbody>

  • table-column:指定对象作为表格列,相当于html标签<col>

  • table-column-group:指定对象作为表格列组显示,相当于html标签<colgroup>

  • table-header-group:指定对象作为表格标题组,相当于html标签<thead>

  • table-footer-group:指定对象作为表格脚注组,相当于html标签<tfoot>

还有一些协助属性:
  • border-collpase:用来决定表格的边框是分开的还是合并的。在分隔模式下,相邻的单元格都拥有独立的边框。在合并模式下,相邻单元格共享边框。
  • border-spacing: 规定相邻单元格边框之间的距离(只适用于 边框分离模式 )。相当于 HTML 中的 cellspacing 属性,但是第二个可选的值可以用来设置不同于水平间距的垂直间距。
  • table-layout:定义了用于布局表格单元格,行和列的算法。(auto:表格及单元格的宽度取决于其包含的内容。fixed:表格和列的宽度通过表格的宽度来设置,某一列的宽度仅由该列首行的单元格决定。)
  • vertical-align:用来指定行内元素(inline)或表格单元格(table-cell)元素的垂直对齐方式。

下面是四个实例:

公用CSS:

/*CSS Table*/
.table {
display: table;
}
.table-fixed {
table-layout: fixed;
}
.table-row {
display: table-row;
}
.table-cell {
display: table-cell;
}
.table-colgroup {
display: table-column-group;
}
.table-caption {
display: table-caption;
}
.table-col {
display: table-column;
}
.table-body {
display: table-row-group;
}
.table-header {
display: table-header-group;
}
.table-footer {
display: table-footer-group;
}
.table-vt {
vertical-align: top;
}
.table-vm {
vertical-align: middle;
}
.table-vb {
vertical-align: bottom;
} /*CSS Table*/
html,body {
height: 100%;
margin:;
padding:;
background: #333;
}
.box1 {
background: #6D5CAE;
}
.box2 {
background: #48B0F7;
}
.box3 {
background: #10CFBD;
}
h3 {
padding-left: 20px;
color: #fff;
}

1.响应式布局

HTML:

 <h3>响应式布局</h3>
<div class="table demo1">
  <div class="box1 table-cell">1</div>
  <div class="box2 table-cell">2</div>
  <div class="box3 table-cell">3</div>
</div>

CSS:

div.demo1 {
width: 100%;
height: 200px;
}

效果:

2.自动占满剩余空间

html:

 <h3>自动占满剩余空间</h3>
<div class="table demo2">
<div class="table-header-group">Table Header</div>
<div class="main table-row">自动占满剩余空间</div>
<div class="table-footer-group">Table Footer</div>
</div>

css:

.demo2 {
width: 400px;
height: 300px;
}
.demo2 div.table-header-group {
padding: 5px 20px;
background: #10CFBD;
}
.demo2 .main {
height: 100%;
background: #48B0F7;
}
.demo2 div.table-footer-group {
padding: 5px 20px;
background: #10CFBD;
}

效果:

3.动态垂直居中对齐

html:

 <h3>动态垂直居中对齐</h3>
<div class="table demo3">
<div class="table-cell table-vm">
<div class="center-box">123</div>
</div>
</div>

css:

.demo3 {
width: 400px;
height: 300px;
background: #10CFBD;
}
.center-box {
width: 100px;
height: 100px;
background: #6D5CAE;
display: inline-block;
}

效果:

4.动态水平居中对齐

html:

 <h3>动态水平居中对齐</h3>
<div class="table demo4">
<div class="center-box">123</div>
</div>

css:

.demo4 {
width: 400px;
height: 300px;
background: #10CFBD;
text-align: center;
} .center-box {
width: 100px;
height: 100px;
background: #6D5CAE;
display: inline-block;
}

效果:

CSS布局之display: tables布局的更多相关文章

  1. CSS HTML元素布局及Display属性

    本篇文章主要介绍HTML的内联元素.块级元素的分类与布局,以及dispaly属性对布局的影响. 目录 1. HTML 元素分类:介绍内联元素.块级元素的分类. 2. HTML 元素布局:介绍内联元素. ...

  2. CSS布局 ——从display,position, float属性谈起(转)

    CSS布局 ——从display,position, float属性谈起   页面布局,或者是在页面上做些小效果的时候经常会用到 display,position和float 属性,如果对它们不是很了 ...

  3. css之display:inline-block布局

    css之display:inline-block布局 更好的排版-->查看原文 1.解释一下display的几个常用的属性值,inline , block, inline-block ●inli ...

  4. CSS之使用display:inline-block来布局

    css之display:inline-block布局 1.解释一下display的几个常用的属性值,inline , block, inline-block inline(行内元素): 使元素变成行内 ...

  5. css之display:inline-block布局--转

    css之使用display:inline-block来布局   css之display:inline-block布局 1.解释一下display的几个常用的属性值,inline , block, in ...

  6. 前端--CSS之使用display:inline-block来布局(转)

    CSS之使用display:inline-block来布局   css之display:inline-block布局 1.解释一下display的几个常用的属性值,inline , block, in ...

  7. HTML/CSS:display:flex 布局教程

    网页布局(layout)是 CSS 的一个重点应用. 布局的传统解决方案,基于盒状模型,依赖 display 属性 + position属性 + float属性.它对于那些特殊布局非常不方便,比如,垂 ...

  8. 多栏多列布局(display:flex)

    display:flex 多栏多列布局浏览器支持情况:火狐直接支持w3c无前缀写法,谷歌和opera支持-webkit- 前缀写法,比较适合移动端开发使用, display:flex 这个牛逼的css ...

  9. CSS 实现:两栏布局(一边固定,一边自适应)

    ☊[实现要求]:CSS实现左边固定,右边自适应父容器宽度的两栏布局. <body> <div class="left"></div> <d ...

随机推荐

  1. JS的函数和对象四

    复习 数组 toString/join/concat/slice/splice/reverse/sort/ push/pop/unshift/shift 字符串 new String(2)  /  S ...

  2. 9.3 Go json

    9.3 Go json json是一种轻量级的数据交换格式,易于机器解析,是种key-value格式. JavaScript Object Notation是中种主流的数据格式. json常用于网络传 ...

  3. mysql运维入门4:索引、慢查询、优化

    MySQL索引用来快速地寻找那些具有特定值的记录,所有MySQL索引都是以B-树的形式保存 如果没有索引,执行查询时,MySQL必须从第一个记录开始整表扫描,知道查询到符合要求的记录,记录越大,花费时 ...

  4. 根据ip查询ip归属地

    http://www.oschina.net/code/snippet_944819_33978 http://www.jb51.net/article/54287.htm public String ...

  5. jQuery根据元素值删除数组元素的方法

    http://www.jb51.net/article/68349.htm 本文实例讲述了jQuery根据元素值删除数组元素的方法.分享给大家供大家参考.具体如下: 例如删除C这个元素 ,前提不知道C ...

  6. Request.params,Request.form,Request.querystring区别(转)

    自己总结:---大致意思是: 1.传参的方式分为:get方式传参,post方式传参,request.cookies和request.servervariables 2.这几种获取参数方式获取的都是一个 ...

  7. Golang源码学习:调度逻辑(一)初始化

    本文所使用的Golang为1.14,dlv为1.4.0. 源代码 package main import "fmt" func main() { fmt.Println(" ...

  8. SPL常用函数

    使用SPL_AUTOLOAD_REGISTER装载类 <?php /** * libs/Test.class.php */ class Test { function __construct() ...

  9. 循序渐进VUE+Element 前端应用开发(3)--- 动态菜单和路由的关联处理

    在我开发的很多系统里面,包括Winform混合框架.Bootstrap开发框架等系列产品中,我都倾向于动态配置菜单,并管理对应角色的菜单权限和页面权限,实现系统对用户权限的控制,菜单一般包括有名称.图 ...

  10. php日志监控

    <?php date_default_timezone_set('Asia/Shanghai'); $time = date('Y-m-d H:i:s',time()); //访问时间 $ip ...