返回介绍

Table 表格

发布于 2024-06-15 14:30:40 字数 15907 浏览 0 评论 0 收藏 0

table

用于以网格的形式显示二维数据。在HTML的早期版本中,用表格空格页面布局的现象很常见。现在已经不再允许这样做,取而代之的是新增的CSS表格特征。

[TOC]

元素一览

元素说明类型新增或有无变化
table表格有变化
caption标题有变化
thead标题行有变化
th表格有变化
tbody表主体有变化
tfoot表脚有变化
tr一行有变化
col一列有变化
colgroup一组列有变化
td单元格有变化

创建一个表格,table、tr、td是必须有的。table是HTML支持表格式布局的核心元素。

table 标签到 td 标签之间不能插入非表格元素。否则会莫名其妙的消失了,其实是被浏览器过滤掉了。

table 表格

元素table
元素类型
父元素任何可以包含流的元素
局部属性border
内容以上表格内元素
标签用法双标签
html新增
HTML5中变化summary、align、width、bgcolor、cellpadding、cellspacing、frame和rules属性已不再使用,其功能由css实现,border 属性的值必须设置为1。表格边框的粗细必须用CSS控制。
默认样式table {display: block; border-collapse: separate; border-spacing: 2px; border-color: gray; }
  • border 使用设个属性用来告诉浏览器,这个表格是用来表示表格式数据,而不是用来布局的。大多数浏览器见到这个属性时,都会在表格和每个单元格周围绘制出边框。其值必须为1或空字符串“”。改属性并不控制样式,那是css的工作。

tr 行 td 列

HTML基于行而不是列,每个行必须分别标记。

元素tr
元素类型
父元素table、thead、tfoot、tbody
局部属性
内容一个或多个td或th元素。
标签用法双标签
html新增
HTML5中变化align、char、charoff、valign和bgcolor属性已不再使用,其功能由css实现。
默认样式tr {display: table-row; vertical-align: inherit; border-color: inherit; }
元素td 单元格
元素类型
父元素tr
局部属性colspan、rowspan、headers
内容流内容。
标签用法双标签
html新增
HTML5中变化其余属性已不再使用
默认样式td {display: table-cell; vertical-align: inherit; }

有了三个核心元素,就能组装出表格。

但是为了让表格内容根据语义化,常需要以下的元素

th 表头单元格

元素td 单元格
元素类型
父元素tr
局部属性colspan、rowspan、headers
内容短语内容
标签用法双标签
html新增
HTML5中变化其余属性已不再使用
默认样式td {display: table-cell; vertical-align: inherit; font-weight: bold; text-align: center; }

td,th都有header属性,header属性值可以设置为一个或多个表头th的id属性值,用于说明该单元格关联到某行某列。它可以供屏幕阅读器和其它残障辅助技术用来简化对表格的处理。

划分表格内容

结构化的数据不仅设置语义清晰,设置样式也变得灵活,而且根据结构添加的样式不会因为添加数据和减少数据而变得错乱。

表格可以细分为表主体、表头、表脚。表主体是包含数据的地方。

tbody表主体

元素tbody, thead, tfoot
元素类型
父元素table
局部属性
内容零个或多个tr元素
标签用法双标签
html新增
HTML5中变化原有属性都被废弃. tfoot 现在出现在 tbody,tr前后都可以。
默认样式tbody {display: table-row-group; vertical-align: middle; border-color: inherit; }
默认样式thead {display: table-header-group; vertical-align: middle; border-color: inherit; }
默认样式tfoot {display: table-footer-group; vertical-align: middle; border-color: inherit; }

即便在文档表格中没有用到table元素,大多数浏览器在处理table元素时,都会自动插入tbody元素,因此完全根据文档中的表格结构设计的css选择器可能不管用。例如,由于浏览器在table和tr之间插入了tbody元素。table > tr 选择器会失效。需要使用table > tbody > tr 或者 table tr。 甚至可以使用 tbody > tr 选择器。

不要让两个单元格扩展到同一区域从而形成重叠单元格。表格元素的用途是表格式数据。形成重叠单元格的唯一原因是表格元素布局其他元素,而这个特性应该用CSS的表格特性来做。

caption 为表格添加标题

为表格定义一个标题,并将其与表格关联起来。

元素caption
元素类型
父元素tr
局部属性
内容流,但不能是table元素
标签用法双标签
html新增
HTML5中变化align余属性已不再使用
默认样式caption {display: table-caption; text-align: center; }

calgroup,col 处理列

HTML 中表格是基于行的,即元素都是放在tr元素中,一行一行地组件起来的。因此对于列的应用样式有点不方便,对于包含不规则单元格的表格更是如此。colgroup和col正是用于解决这个问题。colgroup代表一组列。

<table border="1">
    <caption>Table Deme</caption>
    <colgroup id="colgroup1">
        <col id="col1And2" span="2" />
        <col id="col3"/>
    </colgroup id="colgroup2" span="2">
    <colgroup></colgroup>
    <thead>
        <tr><th>Rand</th><th>Name</th><th>Color</th><th colspan="2">Size & Votes</th></tr>
    </thead>
    <tbody>
        <tr>
            <th>Favorite:</th><td>Apple</td><td>Green</td><td>Medium</td><td>500</td>
        </tr>
        <tr>
            <th>2nd Favorite:</th><td>Oranges</td><td>Orange</td><td>Large</td><td>450</td>
        </tr>
        <tr>
            <th>3rd Favorite:</th><td>Pomegranate</td>
            <td colspan="2" rowspan="2">
                Pomegranates and cherries can both come in a range of colors
                and sizes.
            </td>
            <td>203</td>
        </tr>
        <tr>
            <th rowspan="2">Joint 4th:</th>
            <td>Cherries</td>
            <td rowspan="2">75</td>
        </tr>
        <tr>
            <td>Pineapple</td>
            <td>Brown</td>
            <td>Very Large</td>
         </tr>
    </tbody>
    <tfoot>
        <tr><th colspan="5">&copy; 2011 Adam Freeman Fruit Data Enterprises</th></tr>
    </tfoot>
</table>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文