CSS表格笔录

属性                                              描述

border-collapse          设置是否把表格边框合并为单一的边框

border-spacing                设置分隔单元格边框的距离

caption-side                              设置表格标题的位置

empty-cells                    设置是否显示表格中的空单元格

table-layout                       设置显示单元、行和列的算法

【注意:】如果没有规定 !DOCTYPE,以上属性可能产生意想不到的结果

①border-collapse:合并表格边框

   默认值为separate(分离),边框会被分开,且不会忽略 border-spacing 和 empty-cells 属性

   collapse(缩合)边框会合并为一个单一的边框,会忽略 border-spacing 和 empty-cells 属性

②border-spacing:设置单元格距离

   设置相邻单元格的边框间的距离(仅用于“边框分离”模式),不过某些版本的IE浏览器不支持此属性

   在指定的两个长度值中,第一个是水平间隔,第二个是垂直间隔。除非 border-collapse 被设置为 collapse,否则将忽略这个属性

   如果定义一个 length 参数,那么定义的是水平和垂直间距;如果定义两个 length 参数,那么第一个设置水平间距,而第二个设置垂直间距。不允许使用负值

③caption-side (标题端):表格标题的位置

    指定表标题相对于表框的放置位置,表标题显示为好像它是表之前(或之后)的一个块级元素

    <caption>定义表格标题,必须紧随 table 标签之后。只能对每个表格定义一个标题,通常这个标题会被居中于表格之上

<style type="text/css">
caption{caption-side:bottom}
</style>
<table border="1">
<caption>这是标题</caption>
<tr>
<td>Adams</td>
<td>John</td>
</tr>
<tr>
<td>Bush</td>
<td>George</td>
</tr>
</table>

 【属性值】

   top               默认值,把表格标题定位在表格之上;

   bottom               把表格标题定位在表格之下

 ④empty-cells(空单元格):设置是否显示表格中的空单元格(仅用于“分离边框”模式)

    如果显示,就会绘制出单元格的边框和背景。除非 border-collapse 设置为 separate,否则将忽略这个属性

    一般默认显示空单元格

<style type="text/css">
  table{
     border-collapse: separate;
     empty-cells: hide;
  }
</style>
<table border="1">
<tr>
<td>Adams</td>
<td>John</td>
</tr>
<tr>
<td>Bush</td>
<td></td>
</tr>
</table>

 【属性值】

     hide                                    不在空单元格周围绘制边框;

     show                                 默认值,在空单元格周围绘制边框。

  ⑤表格布局(自动表格布局和固定表格布局)

table-layout属性值:auto、fixed、inherit(IE不支持) 

  1 . auto:默认,自动表格布局

   列宽度由单元格中没有折行的最宽的内容设定。此算法有时比较慢,这是由于它需要在确定最终的布局之前访问表格中所有的内容

  2 . fixed:固定表格布局

   水平布局仅仅取决于表格宽度、列宽度、表格边框宽度、单元格间距、而与单元格的内容无关。与自动表格布局相比,允许浏览器更快地对表格进行布局。通过固定表格布局用户代理在接收到第一行后就可以显示表格

    如果指定了单元格的宽度,则会按指定的宽度限定每个单元格宽度,跟内容无关(如果指定的是比例,会永远保持这个比例),这样就可能出现内容飘到单元格之外的情况;如果没有指定单元格的宽度,则会根据table的总宽度平分到每个单元格

 例子:

<div class="test-table-box">
    <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
            <th scope="col">1</th>
            <th scope="col">2</th>
            <th scope="col">3</th>
        </tr>
        <tr>
            <td>中文</td>
            <td class="ellipse">
          table-layout属性有auto、fixed和inherit三个值那么这三个值的效果是什么样的呢?
            </td>
            <td>2016/07/21 14:28</td>
        </tr>
        <tr>
            <td>英文</td>
            <td class="wb">
               haolezheyihangwomendouhuachenghanyupinyinkanxiayingwendexiaoguoshishen
              meyangdehuibuhuihuanhangshenmedeceshiyixiaxiaoguo
            </td>
            <td>2016/07/21 14:28</td>
        </tr>
    </table>
</div>
<div class="test-table-box">
    <table class="layout-fixed" width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
            <th scope="col">1</th>
            <th scope="col">2</th>
            <th scope="col">3</th>
        </tr>
        <tr>
            <td>中文</td>
            <td class="ellipse">
              table-layout属性有auto、fixed和inherit三个值那么
                 这三个值的效果是什么样的呢?</td>
            <td>2016/07/21 14:28</td>
        </tr>
        <tr>
            <td>英文</td>
            <td class="wb">
                 haolezheyihangwomendouhuachenghanyupinyinkanxiayi
          ngwendexiaoguoshishenmeyangdehuibuhuihuanhangshenmedeceshiyixiaxiaoguo
            </td>
            <td>2016/07/21 14:28</td>
        </tr>
    </table>
</div>
.test-table-box table{
    border-bottom: 1px solid red;
    border-left: 1px solid red;
}
.layout-fixed{
    table-layout: fixed;
}
.wb{/*连续英文数字字符换行*/
    word-break: break-all;
}
.ellipse{/*单行文字超出时用省略号显示*/
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.test-table-box th,
.test-table-box td{
    border-top: 1px solid red;
    border-right: 1px solid red;
    padding: 5px;
    text-align: center;
    white-space: pre-wrap;
}

 效果: 

CSS表格笔录

固定表格布局:

固定表格布局与自动表格布局相比,允许浏览器更快地对表格进行布局。

在固定表格布局中,水平布局仅取决于表格宽度、列宽度、表格边框宽度、单元格间距,而与单元格的内容无关。

通过使用固定表格布局,用户代理在接收到第一行后就可以显示表格。

自动表格布局:

在自动表格布局中,列的宽度是由列单元格中没有折行的最宽的内容设定的。

此算法有时会较慢,这是由于它需要在确定最终的布局之前访问表格中所有的内容。

相关推荐