html 表格 table

table标签实现表格。

img


1 语法

标准语法

    <table >
        <thead>
            <tr>
                <th>标题1</th>
                <th>标题2</th>
                <th>标题3</th>
                <th>标题4</th>
            </tr>
        </thead>
    
        <tbody>
            <tr>
                <td>第1行第1列</td>
                <td>第1行第2列</td>
                <td>第1行第3列</td>
                <td>第1行第4列</td>            
            </tr>
    
            <tr>
                <td>第2行第1列</td>
                <td>第2行第2列</td>
                <td>第2行第3列</td>
                <td>第2行第4列</td>            
            </tr> 
            
            <tr>
                <td>第3行第1列</td>
                <td>第3行第2列</td>
                <td>第3行第3列</td>
                <td>第3行第4列</td>            
            </tr>         
        </tbody>
    
        <tfoot>
            <tr>
                <th>表脚列1</th>
                <th>表脚列2</th>
                <th>表脚列3</th>
                <th>表脚列4</th>
            </tr>
        </tfoot>
    </table>

2 表格组成

完整的表格table包括3个部分:

1)表头:thead

表头包含行tr,可以包含多行,通常只有一行;

一行包含多列th,th里对应的标题内容会水平居中、加粗;

2)表主体:tbody

表主体通常包含多行tr;

一行包含多列td,td里对应的内容默认左对齐;

3)表脚:tfoot

表脚与表头的内部标签类似,通常用于汇总。经常省略。


3 table常用标签汇总

table常用标签 说明
table 表格
thead 表头
tbody 表主体
tfoot 表脚
tr 一行
th 一列,用于表头与表脚。
td 一列,用于内容单元格。

4 默认样式

表格与单元格默认没有边框,很丑。

th加粗、水平居中、垂直居中。

td 左对齐,垂直居中。

img


5 表格加边框

<table style="border-collapse: collapse;width:600px;" border="1" bordercolor="#00f">

bordercolor="#00f"设置边框颜色;

border="1" 设置边框,但表格与单元格都有各自的边框,它们之间会有一点间距;

img

border-collapse: collapse; 合并相邻边框的距离;

img


6 td对齐方式

td对齐属性 说明
标签属性:align 水平对齐方式。left:左对齐;center:居中对齐;right:右对齐。
style属性:text-align 同上。推荐使用style属性。
标签属性:valign 垂直对齐方式。top:顶端对齐;middle:居中对齐;bottom:底部对齐。
style属性:vertical-align 同上。推荐使用style属性。

示例

    <table style="border-collapse: collapse;width:400px;" border="1" bordercolor="#00f" >
        <thead>
            <tr style="height: 60px;">
                <th>标题1</th>
                <th>标题2</th>
            </tr>
        </thead>
    
        <tbody>
            <tr style="height: 50px;">
                <td  align="right" valign="top">第1行第1列</td>
                <td >第1行第2列</td>
       
            </tr>
    
            <tr style="height: 50px;">
                <td style="text-align: center;vertical-align: bottom;">第2行第1列</td>
                <td>第2行第2列</td>
           
            </tr> 
             
        </tbody>

    </table>

img


7 简单的table写法

table也可以不用thead、tbody、tfoot,其中直接使用tr与td。

    <table style="border-collapse: collapse;width: 500px;" border="1">
            <tr>
                <td>第1行第1列</td>
                <td>第1行第2列</td>
                <td>第1行第3列</td>
                <td>第1行第4列</td>            
            </tr>
    
            <tr>
                <td>第2行第1列</td>
                <td>第2行第2列</td>
                <td>第2行第3列</td>
                <td>第2行第4列</td>            
            </tr> 
            
            <tr>
                <td>第3行第1列</td>
                <td>第3行第2列</td>
                <td>第3行第3列</td>
                <td>第3行第4列</td>            
            </tr>         
    </table>

img

建议

如果有表头,建议加上thead与tbody,逻辑更加清晰。


8 项目使用情况

table标签用于展示表格数据,不要用来作布局。

早期div布局还没流行时,我们习惯使用table进行页面布局。

后期div布局流行,不再使用table进行布局。


table布局的缺点

1)用户体验差。等table所有页面加载完毕才开始显示(渲染)。当table内容很多网速不太好时,会出现明显的卡白。

2)不够灵活。div布局非常灵活,table采用行列拆分式做法,非常麻烦,以后要修改布局也不方便。