zoukankan      html  css  js  c++  java
  • CSS布局之display: tables布局

    首先来看看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: 0;
        padding: 0;
        background: #333;
    }
    .box1 {
        background: #6D5CAE;
    }
    .box2 {
        background: #48B0F7;
    }
    .box3 {
        background: #10CFBD;
    }
    h3 {
        padding-left: 20px;
        color: #fff;
    }

    1.响应式布局

    HTML:

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

    CSS:

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

    效果:

    2.自动占满剩余空间

    html:

    1 <h3>自动占满剩余空间</h3>
    2 <div class="table demo2">
    3     <div class="table-header-group">Table Header</div>
    4     <div class="main table-row">自动占满剩余空间</div>
    5     <div class="table-footer-group">Table Footer</div>
    6 </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:

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

    css:

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

    效果:

    4.动态水平居中对齐

    html:

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

     css:

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

    效果:

  • 相关阅读:
    短视频不为人知的素材来源 以及平台推荐的黑盒机制
    说什么月入几万 我是不是应该一头撞死?
    Python 3 进阶 —— 使用 PyMySQL 操作 MySQL
    CentOS安装Subversion 1.9.*版本客户端
    [算法]PHP随机合并数组并保持原排序
    CentOS安装Memcached
    Git Windows客户端保存用户名和密码
    ApiGen 4.0配置项
    ApiGen安装
    SQL服务器模式
  • 原文地址:https://www.cnblogs.com/feixiablog/p/9360061.html
Copyright © 2011-2022 走看看