# HTML &lt;table&gt; 标签 ## 实例 一个简单的 HTML 表格,包含两行两列: ``` <table border="1"> <tr> <th>Month</th> <th>Savings</th> </tr> <tr> <td>January</td> <td>$100</td> </tr> </table> ``` ## 浏览器支持 | IE | Firefox | Chrome | Safari | Opera | | --- | --- | --- | --- | --- | 所有浏览器都支持 &lt;table&gt; 标签。 ## 定义和用法 &lt;table&gt; 标签定义 HTML 表格。 简单的 HTML 表格由 table 元素以及一个或多个 tr、th 或 td 元素组成。 tr 元素定义表格行,th 元素定义表头,td 元素定义表格单元。 更复杂的 HTML 表格也可能包括 caption、col、colgroup、thead、tfoot 以及 tbody 元素。 ## HTML 与 XHTML 之间的差异 在 HTML 4.01 中,table 元素的 "align" 和 "bgcolor" 属性是不被赞成使用的。 在 XHTML 1.0 Strict DTD,table 元素的 "align" 和 "bgcolor" 属性是不被支持的。 ## 可选的属性 | 属性 | 值 | 描述 | | --- | --- | --- | | [align](/tags/att_table_align.asp "HTML &lt;table&gt; 标签的 align 属性") | `left` `center` `right` | 不赞成使用。请使用样式代替。规定表格相对周围元素的对齐方式。 | | [bgcolor](/tags/att_table_bgcolor.asp "HTML &lt;table&gt; 标签的 bgcolor 属性") | _rgb(x,x,x)_ _#xxxxxx_ _colorname_ |不赞成使用。请使用样式代替。规定表格的背景颜色。 | | [border](/tags/att_table_border.asp "HTML &lt;table&gt; 标签的 border 属性") | _pixels_ | 规定表格边框的宽度。 | | [cellpadding](/tags/att_table_cellpadding.asp "HTML &lt;table&gt; 标签的 cellpadding 属性") | _pixels_ _%_ | 规定单元边沿与其内容之间的空白。 | | [cellspacing](/tags/att_table_cellspacing.asp "HTML &lt;table&gt; 标签的 cellspacing 属性") | _pixels_ _%_ | 规定单元格之间的空白。 | | [frame](/tags/att_table_frame.asp "HTML &lt;table&gt; 标签的 frame 属性") | `void` `above` `below` `hsides` `lhs` `rhs` `vsides` `box` `border` | 规定外侧边框的哪个部分是可见的。 | | [rules](/tags/att_table_rules.asp "HTML &lt;table&gt; 标签的 rules 属性") | `none` `groups` `rows` `cols` `all` | 规定内侧边框的哪个部分是可见的。 | | [summary](/tags/att_table_summary.asp "HTML &lt;table&gt; 标签的 summary 属性") | _text_ | 规定表格的摘要。 | | [width](/tags/att_table_width.asp "HTML &lt;table&gt; 标签的 width 属性") | _%_ _pixels_ | 规定表格的宽度。 | ## 全局属性 &lt;table&gt; 标签支持 [HTML 中的全局属性](/tags/html_ref_standardattributes.asp)。 ## 事件属性 &lt;table&gt; 标签支持 [HTML 中的事件属性](/tags/html_ref_eventattributes.asp)。 ## TIY 实例 [表格](/tiy/t.asp?f=html_tables) 这个例子演示如何在 HTML 文档中创建表格。 ``` <html> <body> <p>每个表格由 table 标签开始。</p> <p>每个表格行由 tr 标签开始。</p> <p>每个表格数据由 td 标签开始。</p> <h4>一列:</h4> <table border="1"> <tr> <td>100</td> </tr> </table> <h4>一行三列:</h4> <table border="1"> <tr> <td>100</td> <td>200</td> <td>300</td> </tr> </table> <h4>两行三列:</h4> <table border="1"> <tr> <td>100</td> <td>200</td> <td>300</td> </tr> <tr> <td>400</td> <td>500</td> <td>600</td> </tr> </table> </body> </html> ``` [表格边框](/tiy/t.asp?f=html_table_borders) 本例演示各种类型的表格边框。 ``` <html> <body> <h4>带有普通的边框:</h4> <table border="1"> <tr> <td>First</td> <td>Row</td> </tr> <tr> <td>Second</td> <td>Row</td> </tr> </table> <h4>带有粗的边框:</h4> <table border="8"> <tr> <td>First</td> <td>Row</td> </tr> <tr> <td>Second</td> <td>Row</td> </tr> </table> <h4>带有很粗的边框:</h4> <table border="15"> <tr> <td>First</td> <td>Row</td> </tr> <tr> <td>Second</td> <td>Row</td> </tr> </table> </body> </html> ``` [没有边框的表格](/tiy/t.asp?f=html_tables2) 本例演示一个没有边框的表格。 ``` <html> <body> <h4>这个表格没有边框:</h4> <table> <tr> <td>100</td> <td>200</td> <td>300</td> </tr> <tr> <td>400</td> <td>500</td> <td>600</td> </tr> </table> <h4>这个表格也没有边框:</h4> <table border="0"> <tr> <td>100</td> <td>200</td> <td>300</td> </tr> <tr> <td>400</td> <td>500</td> <td>600</td> </tr> </table> </body> </html> ``` [表格中的标题(Headings)](/tiy/t.asp?f=html_table_headers) 本例演示如何显示表格标题。 ``` <html> <body> <h4>表头:</h4> <table border="1"> <tr> <th>姓名</th> <th>电话</th> <th>电话</th> </tr> <tr> <td>Bill Gates</td> <td>555 77 854</td> <td>555 77 855</td> </tr> </table> <h4>垂直的表头:</h4> <table border="1"> <tr> <th>姓名</th> <td>Bill Gates</td> </tr> <tr> <th>电话</th> <td>555 77 854</td> </tr> <tr> <th>电话</th> <td>555 77 855</td> </tr> </table> </body> </html> ``` [空单元格](/tiy/t.asp?f=html_table_nbsp) 本例展示如何使用 "&nbsp;" 处理没有内容的单元格。 ``` <html> <body> <table border="1"> <tr> <td>Some text</td> <td>Some text</td> </tr> <tr> <td></td> <td>Some text</td> </tr> </table> <p>正如您看到的,其中一个单元没有边框。这是因为它是空的。在该单元中插入一个空格后,仍然没有边框。</p> <p>我们的技巧是在单元中插入一个 no-breaking 空格。</p> <p>no-breaking 空格是一个字符实体。如果您不清楚什么是字符实体,请阅读关于字符实体的章节。</p> <p>no-breaking 空格由和号开始 ("&"),然后是字符"nbsp",并以分号结尾(";")。</p> </body> </html> ``` [带有标题的表格](/tiy/t.asp?f=html_tables3) 本例演示一个带标题 (caption) 的表格 ``` <html> <body> <h4>这个表格有一个标题,以及粗边框:</h4> <table border="6"> <caption>我的标题</caption> <tr> <td>100</td> <td>200</td> <td>300</td> </tr> <tr> <td>400</td> <td>500</td> <td>600</td> </tr> </table> </body> ``` [跨行或跨列的表格单元格](/tiy/t.asp?f=html_table_span) 本例演示如何定义跨行或跨列的表格单元格。 ``` <html> <body> <h4>横跨两列的单元格:</h4> <table border="1"> <tr> <th>姓名</th> <th colspan="2">电话</th> </tr> <tr> <td>Bill Gates</td> <td>555 77 854</td> <td>555 77 855</td> </tr> </table> <h4>横跨两行的单元格:</h4> <table border="1"> <tr> <th>姓名</th> <td>Bill Gates</td> </tr> <tr> <th rowspan="2">电话</th> <td>555 77 854</td> </tr> <tr> <td>555 77 855</td> </tr> </table> </body> </html> ``` [表格内的标签](/tiy/t.asp?f=html_table_elements) 本例演示如何在不同的元素内显示元素。 ``` <html> <body> <table border="1"> <tr> <td> <p>这是一个段落。</p> <p>这是另一个段落。</p> </td> <td>这个单元包含一个表格: <table border="1"> <tr> <td>A</td> <td>B</td> </tr> <tr> <td>C</td> <td>D</td> </tr> </table> </td> </tr> <tr> <td>这个单元包含一个列表: <ul> <li>苹果</li> <li>香蕉</li> <li>菠萝</li> </ul> </td> <td>HELLO</td> </tr> </table> </body> </html> ``` [单元格填充(Cell padding)](/tiy/t.asp?f=html_table_cellpadding) 本例演示如何使用单元格填充来创建单元格内容与其边框之间的空白。 ``` <html> <body> <h4>没有 cellpadding:</h4> <table border="1"> <tr> <td>First</td> <td>Row</td> </tr> <tr> <td>Second</td> <td>Row</td> </tr> </table> <h4>带有 cellpadding:</h4> <table border="1" cellpadding="10"> <tr> <td>First</td> <td>Row</td> </tr> <tr> <td>Second</td> <td>Row</td> </tr> </table> </body> </html> ``` [单元格间距(Cell spacing)](/tiy/t.asp?f=html_table_cellspacing) 本例演示如何使用单元格间距增加单元格之间的距离。 ``` <html> <body> <h4>没有 cellspacing:</h4> <table border="1"> <tr> <td>First</td> <td>Row</td> </tr> <tr> <td>Second</td> <td>Row</td> </tr> </table> <h4>带有 cellspacing:</h4> <table border="1" cellspacing="10"> <tr> <td>First</td> <td>Row</td> </tr> <tr> <td>Second</td> <td>Row</td> </tr> </table> </body> </html> ``` [向表格添加背景颜色或背景图像](/tiy/t.asp?f=html_table_background) 本例演示如何向表格添加背景 ``` <html> <body> <h4>背景颜色:</h4> <table border="1" bgcolor="red"> <tr> <td>First</td> <td>Row</td> </tr> <tr> <td>Second</td> <td>Row</td> </tr> </table> <h4>背景图像:</h4> <table border="1" background="/i/eg_bg_07.gif"> <tr> <td>First</td> <td>Row</td> </tr> <tr> <td>Second</td> <td>Row</td> </tr> </table> </body> </html> ``` [向表格单元添加背景颜色或者背景图像](/tiy/t.asp?f=html_table_cellbackground) 本例演示如何向一个或者更多表格单元添加背景 ``` #### 单元背景: First | Row | Second | Row | ``` [在表格单元中排列内容](/tiy/t.asp?f=html_table_align) 本例演示如何使用 "align" 属性排列单元格内容,以便创建一个美观的表格。 ``` <html> <body> <table width="400" border="1"> <tr> <th align="left">消费项目....</th> <th align="right">一月</th> <th align="right">二月</th> </tr> <tr> <td align="left">衣服</td> <td align="right">$241.10</td> <td align="right">$50.20</td> </tr> <tr> <td align="left">化妆品</td> <td align="right">$30.00</td> <td align="right">$44.45</td> </tr> <tr> <td align="left">食物</td> <td align="right">$730.40</td> <td align="right">$650.00</td> </tr> <tr> <th align="left">总计</th> <th align="right">$1001.50</th> <th align="right">$744.65</th> </tr> </table> </body> </html> ``` [框架(frame)属性](/tiy/t.asp?f=html_table_frame) 本例演示如何使用 "frame" 属性来控制围绕表格的边框。 ``` <html> <body> <p><b>注释:</b>frame 属性无法在 Internet Explorer 中正确地显示。</p> <p>Table with frame="box":</p> <table frame="box"> <tr> <th>Month</th> <th>Savings</th> </tr> <tr> <td>January</td> <td>$100</td> </tr> </table> <p>Table with frame="above":</p> <table frame="above"> <tr> <th>Month</th> <th>Savings</th> </tr> <tr> <td>January</td> <td>$100</td> </tr> </table> <p>Table with frame="below":</p> <table frame="below"> <tr> <th>Month</th> <th>Savings</th> </tr> <tr> <td>January</td> <td>$100</td> </tr> </table> <p>Table with frame="hsides":</p> <table frame="hsides"> <tr> <th>Month</th> <th>Savings</th> </tr> <tr> <td>January</td> <td>$100</td> </tr> </table> <p>Table with frame="vsides":</p> <table frame="vsides"> <tr> <th>Month</th> <th>Savings</th> </tr> <tr> <td>January</td> <td>$100</td> </tr> </table> </body> </html> ``` ## 相关页面 HTML DOM 参考手册:[Table 对象](/jsref/dom_obj_table.asp "HTML DOM Table 对象")