组织:中国互动出版网(http://www.china-pub.com/)
RFC文档中文翻译计划(http://www.china-pub.com/compters/emook/aboutemook.htm)
E-mail:ouyang@china-pub.com
译者:黄俊(hujiao hj_chinese@yahoo.com)
译文发布时间:2001-4-26
版权:本中文翻译文档版权归中国互动出版网所有。可以用于非商业用途自由转载,但必须
保留本文档的翻译及版权信息。
Network Working Group D. Raggett
Request for Comments: 1942 W3C
Category: Experimental May 1996
HTML中的表格
(RFC1942 HTML Tables)
本备忘录的状态
本备忘录描述了一种Internet社区的试验协议。本备忘录并未规定任何Internet标准,它需
要进一步进行讨论和建议以得到改进。本备忘录的发布不受限制。
摘要
超文本标记语言(HTML)是一种简单的用来建立超文本文档的标记语言,以便能让文档能
在不同的平台上使用。HTML文档是具有通用语义的SGML文档,适合在很多应用程序中
来表达信息。本规范对HTML做出了扩展以便能支持各种表格。该模型被设计成可以和联
合样式表一道工作,但也可以独立于联合样式表。它还可以支持制作盲文,语言,或者数据
库和电子数据表中的数据表格。HTML的表格模型包含了CALS表格模型中的某些方面,
比如,可以将表格的行用thead, tbody,tfoot组织起来,还有根据上下文可以简洁地指定
不同的单元格如何对齐。
目录
1.最新的修改 ................................................. 2
2.主要介绍 .…................................................ 2
3.设计的基本原理 .......................................... 5
4.了解表格DTD ............................................ 6
5.推荐的布局算法 ............................................ 20
6.HTML表格DTD ........................................... 22
7.参考文章 ..............…..................................... 26
8.安全性考虑 ..............….................................. 26
9.作者地址 ....................……............................ 27
1.最新的修改
本规范扩展了HTML以支持表格。表格模式是由HTML+的早期工作以及HTML3的初稿脱
胎而来的。更早的模型是根据信息提供者所提出的对更好地控制表格形式的信息的布局的要
求而扩展的。
? 根据指定的字符对齐,比如:"."和":"。例如,将一列数字按照小数点来对齐。
? 在制定表格的框架和规则时有更大的灵活性。
? 在大的表格中能够根据收到的数据逐段显示。
? 能够支持在保持标题头不动的情况下进行表格的卷动,而且对跨页的表格打印有更好的
支持。
? 可选择的列的默认对齐属性。
此外,还有一个主要的目标就是要能够给那些很多在Netscape上所实现的表格应用提供向
后兼容性。其次的目标是在将表格按照SGML CALS模型导入的时候,要能够简化工作量。
最终的草案将让Netscape和Microsoft浏览器兼容同样的ALIGN(对齐)属性。我们已经
对DIR属性的角色做出了一些说明,并针对当混合使用列的绝对宽度和相对宽度时所推荐
采取的行动。
我们采用了一个新的元素COLGROUP,以便能将那些用一个或更多的COL表示的,带有
不同的宽度和对齐属性的列组合成不同的组。COLGROUP的语义已经在前面的草案中做出
了说明,并用RULES=GROUPS代替了RULES=BASIC。
我们修改了FRAME和RULES的属性,这样既不会和SGML中的名字冲突,也不会和ALIGN
和VLALIGN属性冲突。做出这样的修改主要是考虑到将来如果规范对表格元素进行扩展,
支持FRAME和RULES属性时所可能带来的问题。
2.对HTML表格的主要介绍
表格由一个可选的标题头开始,后面跟着一行或许多行。每一行由一个以上的单元格组成,
并可以区分为表头和数据单元格。单元格可以被合并以跨列或跨行,带有可被表现为语音或
盲文的属性,以及能够将表格数据导出到数据库中的属性。这个模型提供了部分的能力来控
制表格的外观,比如说对单元格内容的水平或垂直对齐,框线的样式,单元格内的是周边距。
你可以通过将行或列组合在一起来影响这些属性。表格能包含各种各样的内容,比如说标题
头,列表,段落,表单,图形,预定义的文字甚至嵌套表格。
示例:
A test table with merged cells
Average
other category Misc
height weight
males 1.9 0.003
females 1.7 0.002
在一个哑终端上,这将会显示出类似下面的东西:
A test table with merged cells
/--------------------------------------------------\
| | Average | other | Misc |
| |-------------------| category |--------|
| | height | weight | | |
|-----------------------------------------|--------|
| males | 1.9 | 0.003 | | |
|-----------------------------------------|--------|
| females | 1.7 | 0.002 | | |
\--------------------------------------------------/
接下来,我们再看一个带行组合和列组合的例子(摘录自Nadine Kano的《开发国际性的
软件》)。首先是表格实际显示出来的样子:
CODE-PAGE SUPPORT IN MICROSOFT WINDOWS
===================================================================
=====
Code-Page| Name |ACP OEMCP| Windows Windows Windows
ID | | | NT 3.1 NT 3.51 95
------------------------------------------------------------------------
1200 |Unicode (BMP of ISO 10646) | | X X *
1250 |Windows 3.1 East. Europe | X | X X X
1251 |Windows 3.1 Cyrillic | X | X X X
1252 |Windows 3.1 US (ANSI) | X | X X X
1253 |Windows 3.1 Greek | X | X X X
1254 |Windows 3.1 Turkish | X | X X X
1255 |Hebrew | X | X
1256 |Arabic | X | X
1257 |Baltic | X | X
1361 |Korean (Johab) | X | ** X
------------------------------------------------------------------------
437 |MS-DOS United States | X | X X X
708 |Arabic (ASMO 708) | X | X
709 |Arabic (ASMO 449+, BCON V4)| X | X
710 |Arabic (Transparent Arabic)| X | X
720 |Arabic (Transparent ASMO) | X | X
===================================================================
=====
这里使用的COLGROUP元素将列组合起来并赋予默认的对齐属性。TBODY元素用来组合
行。FRAME和RULE属性用来选择那些需要显示的框线。
CODE-PAGE SUPPORT IN MICROSOFT WINDOWS
Code-Page ID
Name
ACP
OEMCP
Windows NT 3.1
Windows NT 3.51
Windows 95
1200 Unicode (BMP of ISO 10646) X X *
1250 Windows 3.1 Eastern European X X X X
1251 Windows 3.1 Cyrillic X X X X
1252 Windows 3.1 US (ANSI) X X X X
1253 Windows 3.1 Greek X X X X
1254 Windows 3.1 Turkish X X X X
1255 Hebrew X X
1256 Arabic X X
1257 Baltic X X
1361 Korean (Johab) X ** X
437 MS-DOS United States X X X X
708 Arabic (ASMO 708) X X
709 Arabic (ASMO 449+, BCON V4) X X
710 Arabic (Transparent Arabic) X X
720 Arabic (Transparent ASMO) X X
3.设计的基本原理
HTML表格模型来自于各方面相关软件的研究,包括现有的SGML表格模型,常用的字处
理软件包对表格的处理,杂志、书刊及其他纸质文档中对表格数据的排版等。该模型能够让
简单的表格简洁地表述,而如果需要的话,可以增加额外的复杂性。这对那些每天都要修改
内容的文字编辑者来说,非常具有实际意义,同时也减少了从头开始的过程。这个特性对于
HTML今天的成功是非常重要的。
越来越多的人使用来自其他文档格式的过滤器或者直观的所见即所得的HTML编辑器。对
HTML表格模型来说,很好地和这些创作HTML的方法结合在一起是非常重要的。这将影
响到如何显示处理那些跨行或跨列的单元格,以及如何表现那些组合在一起的单元格的对齐
或者其他的属性。
对HTML表格模型的一个主要考虑就是浏览器上使用的字体和窗口大小等是不受创建者控
制的。这就给那些依靠用绝对值的单位,比如picas或pixels来指定列宽的表格带来一定的
风险。相应的,表格可以被动态地扩展大小以和现有的窗口大小和字体协调。作者可以用相
对宽度来指示列宽,而用户端应该确认列的宽度是否足够能容纳最大的单元格的内容。如果
作者的本来意图必须被更改的话,个别用相对宽度指定的列不应该被大幅度的改变。
对于大表格或者比较慢的网络连接速度来说,如果能在完成所有的数据传输前就开始显示表
格将会是十分理想的。对大多数用户代理来说,默认的窗口宽度能显示80个字符,许多
HTML页面都是按照这个默认的设置来设计图形的。创建者能够给用户代理一个提示来启动
表格内容的逐行显示。这个特性需要创建者事先声明列的数目,以及提供用相对或绝对尺寸
对不同的列宽和表格宽度的定义。
对于逐行显示来说,浏览器需要知道列的数目和它们的宽度。默认的表格宽度是当前窗口的
大小(width="100%")。这可以通过改变TABLE的起始标记里的WIDTH属性来改变。默
认地,所有的列都具有同样的宽度,但你也能够在表格数据开始前,指定一个或多个COL
元素的列宽。
剩下的问题就是列的数目了。有些人曾经建议直到表格的第一行数据传输完后才开始显示,
但如果单元格里有很多的内容的话,这可能要花费相当多的时间。大体上看来,如果要实现
逐行显示,让创建者在TABLE的起始标记里面明确地指明列的数目可能会更加现实一些。
创建者可能还需要能够通知浏览器是否要使用逐行显示,或者是否要自动缩放表格以便能够
容纳单元格内的内容。在这两种涉及到自动调整大小方式的情况中,由于对于逐行显示方式
来说,列的数目需要在开始的时候就被注明,所以列的数目在第一种情况里就能够得到确认。
因此,看起来使用COLS=_nn_会比使用LAYOUT属性比如LAYOUT=FIXED或者
LAYOUT=AUTO来得更加合理。
一般来说,从两方面来考虑文档是非常有帮助的:结构化的标记,比如标题头,段落,列表,
表格以及图片;控制显示的标记,比如边距,开始的空格,字体和字号。过去的经验告诉我
们应该将文档中结构化的信息和控制显示的信息区分开来。将这两者混在一起将会给管理和
维护文档带来不断增加的成本,并减少程序和媒体间的可移植性。
对表格来说,从纯化论者的眼光来看,单元格中的文字对齐,单元格间的框线都是控制显示
的信息。但是,如果将这些和结构化的信息组合起来将是非常有用的,因为这些特性在从一
个程序转移到另一个程序中时,具有着很强的移植性。HTML表格模型将大部分控制显示的
信息留给了关联式样表。该模型被设计成可以利用类似的式样表,但也可以单独存在。
HTML+早期的研究提出了一个较简单的模型,本方案对该模型提出了一个超集。表格被认
为是由一个可选的标题及一系列的行组成,而这些行又是由一系列的单元格所组成。该模型
进一步区分了标题头和数据单元格,并且允许单元格能够跨越多行和多列。
按照CALS表格模型,本方案同样允许表格的行可以被组织成标题头,正文,和脚注部分。
这简化了显示控制信息的表述,而且当表格超出了页的边界的时候,能够重复表格的标题头
和脚注所在的行,也能够在一个可滚动的表格面板上提供一个固定的标题头。在标记语言中,
脚注部分被放置在正文部分的前面。这是来自于CALS的一个优化考虑,当处理非常长的
表格时,可以先显示脚注部分,而不用等到所有的表格内容的传输结束后才开始。
对于视觉障碍人士来说,HTML还减少了由于使用图形窗口界面而给他们带来的不便。
HTML表格模型包括能对每个单元格进行标识的属性,以支持高质量的从文字到语音的转
换。同样的属性也可以被用来支持自动将表格数据导入或导出到数据库或电子表格中。
现有的桌面出版软件提供丰富的对表格显示的控制,但要在HTML中也这样实现是不切合
实际的,这将会将HTML变成像RTF或MIF那样臃肿的文字格式。然而,本方案确实让创
建者能够在一套常用的边框式样中有所选择。FRAME属性控制表格四周框线的显示方式,
而RULES属性决定了表格内部的划线方式。
在本方案的拟定过程中,我们尝试了一系列的方法来描绘表格框线的式样。其中的一个问题
关心的是其所能制作出的语句的种类。对边缘减少和边缘增加的内在支持导致了相对复杂的
算法。例如,研究显示,如果允许所有的表格元素都具有FRAME和RULES属性的话,那
么在确定一个单元格的一条特定的边线是否要被划线的时候,将要进行24步的计算。而这
些额外的复杂算法甚至还没有满足所有控制表格显示的要求。目前的方案有意倾向于一个简
单的、直观的、能满足大多数应用的模型,在一个更复杂的方案成为标准前,还需要作很多
试验性的研究。
4.了解表格DTD
表格的文档内容定义(DTD)为HTML表格的语法给出了一个正式的定义。下面就给出了一个
DTD列表,并加上了注解。本文的末尾给出了完整的DTD。
请注意TABLE元素是对一个区域,而不是对字符起作用,所以它和HTML中其他类似的元
素比如段落,列表,标题等一样,控制的是一部分文字。
4.1常用属性
以下这些属性常被某些元素使用,在这里列出它们简洁的定义。一般说来,本方案中的所有
属性的名称和值都不严格区分大小写,但是特别注明的除外。属性ID和CLASS是配合式
样表使用的,而LANG和DIR则是为了满足国际化的需要。
ID
用来定义文档范围内的标识符。既可以用来指明文档内的位置,以作为一个超链的链接目标,
也可以在样式表中使用来赋予一个元素独特的式样。ID属性的值是一个SGML NAME标记,
该标记由一个字母开头,后面跟着字母,数字或"-"及"."符号,字母只能为A-Z和a-z。
CLASS
一个用空格隔开的SGML NAME标记列表。CLASS属性指定该元素属于对应于该名称的
类。它可以让作者来区分有着同样标记的元素所扮演的不同角色。CLASS也可以在用在式
样表中来给这些不同的角色赋予不同的外在表现。
LANG
LANG属性指明了该元素的内容所使用的语言种类。关于语言的种类和有关语法在RFC
1766中做出了定义。概括地说,LANGUAGE的值由一个首标记构成,后面可以跟0个或
更多的子标记,中间用"-"隔开。不允许在其中出现空格,而且所有的标记都是大小写敏感的。
这些标记由IANA制订。两个字母的首标记是一个ISO 639中规定的语言缩写,而第一个子
标记是两个字母组成的,由ISO 3166规定的国家代码。以下是一些LANG属性的示例值:
en, en-US, en-uk, i-cherokee, x-pig-latin.
DIR
人类的书写系统是由一系列的文字组成,这其中主要的区别就是文字的书写方向。拉丁语系
的文字通常是从左到右书写的,而阿拉伯语系的文字是从右到左的。这些字符都有很强的方
向性。其他的字符则没有方向性(比如空格)或者是没有明显的方向性(比如标点符号)。
DIR属性为在解释方向性不明确的字符过程中指明了封装的边界。它并不影响那些具有方向
性的字符本来的方向。DIR属性的值可以是LTR(既从左到右),也可以是RTL(从右到
左)。例如:DIR=RTL。
当对TABLE应用该属性的时候,它将会确定行的几何布局(比如说,如果DIR=RTL的行,
第一行将会在右边显示,而如果DIR=LTR的话,则显示在左边)。而且如果没有其他的
DIR属性来影响单元格中的内容的话,它还将指明单元格中文字的默认排列方向。
4.2 Horizontal和Vertical对齐属性
表格内容的对齐既可以通过一个单元格一个单元格进行指定,也可以从包含其的元素继承过
来,比如说从行,列或者该表格元素本身。
ALIGN
这个属性定义了单元格内容的水平对齐方式。
该属性的值应该为LEFT,CENTER,RIGHT,JUSTIFY或CHAR中的一个。如果用户端
不支持两端对齐的话,它将把JUSTIFY简单地理解为左对齐。
对于那些跨行或跨列的单元格来说,它们的对齐属性是从行或列继承过来的。该单元格起始
的行或列的对齐方式决定了它们将采用的对齐方式。
请注意,单元格内部的元素的对齐属性,例如一个P元素,将会覆盖该单元格本来的对齐
属性。
CHAR
当对齐属性为align=char的时候,用CHAR来指定对齐的字符,例如:char=":"。默认的对
齐字符是LANG属性所指定的当前语言中的小数点,CHAR属性的值是大小写敏感的。
CHAROFF
如果一行中有指定的对齐字符,使用该属性可以指定该行中第一次出现的对齐字符的偏移
量。如果该行中没有包括该指定的字符,就应该水平地和对齐的位置保持一致。根据DIR
属性所指定的单元格里面内容的方向,来确定指定的偏移量是从单元格的左边还是右边开
始。对于拉丁语系来说,偏移量是从单元格的左边距算起;而对于阿拉伯文字来说,则应该
是从右边开始算起。除了使用标准的距离单位外,也可以通过使用"%"符号来指定偏移量为
所在单元格宽度的百分比。例如CHAROFF="30%",指定了对齐的字符应该在该单元格宽
度30%的位置。
在使用上文所提到的两种布局的算法的时候,如果没有明确地指出或继承CHAROFF的属
性的话,默认的对齐位置可以这样确定:确认带有ALIGN=CHAR的列中各行数据在指定的
对齐字符前或后的最大宽度,并将对齐位置确定为能让这些值居中放置。对于逐行显示的表
格来说,建议的默认值是CHAROFF="50%"。如果在不同行中某一列里,只有一部分单元
使用了字符对齐属性。那么默认地,所有的单元格都将统一排列,而不管哪个字符被用来指
定为对齐字符。因为如果数据超过了所分配的列的宽度,而对齐的属性又不够明确的话,对
于列来说,处理对象所需要涉及的划线将会变得非常复杂。
VALIGN
该属性定义单元格内容是根据单元格顶部对齐,还是中间对齐,或是底部对齐。
如果使用该属性,该属性的值应该是TOP,MIDDLE,BOTTOM或者是BASELINE中的一
种。在同一行中使用valign=baseline的所有单元格都将垂直对齐,这样,每个单元格中的
第一行文字都会对齐于同一条基线。但这并不影响到这些单元格里面其他行文字。
4.3 继承顺序
绝大部分的表格元素都能使用这些对齐属性,包括COL,THEAD,TBODY,TFOOT,TR,
TH以及TD。当在进行单元格布局的时候,列的水平对齐属性要优先于行的水平对齐属性,
而对于垂直对齐来说,行的垂直对齐属性的优先级要高于列。下面这张表详细地说明了每个
属性的优先级顺序。
表中X>Y表示X的优先级要高于Y。
ALIGN, CHAR 及 CHAROFF:
单元格 > 列 > 列构成的组 > 行 > 行构成的组 > 默认的属性
VALIGN, LANG 及 DIR:
单元格 > 行 > 行构成的组 > 列 > 列构成的组 > 表格 > 默认的属性
这里所说的单元格是由TH或TD元素定义的;行由TR元素定义,行构成的组由THEAD,
TBODY和TFOOT元素定义,列则由COL元素定义,列构成的组由COLGROUP和COL
元素定义。请注意这里所提到的继承机制并不适用于CLASS属性。
在单元格上的定义的属性将优先于继承得来的属性,但却会被单元格内部的元素的对齐属性
所覆盖。如果在上面提到的这些元素中没有指明ALIGN属性的话,对表格单元格推荐的默
认对齐方式是:表格数据是ALIGN=LEFT,表头是ALIGN=CENTER。垂直对齐属性推荐
默认对齐为VALIGN = MIDDLE。之所以选择这样的默认值是因为这些能够适应大多数的
Netscape的应用方案。
4.4 宽度计量的标准单位
有多个属性通过用一个带有可选的后缀的数字来表示宽度。宽度的单位用该后缀来表示:
pt是points(点),pi是picas(像素),in代表inches(英寸),cm表示centimeters(厘
米),mm表示millimeters(毫米),em代表em单位(和默认的字体的高度相等),px
则表示屏幕的像素。数字是一个整数或者是实数比如"2.5"。指数,象"1.2e2"这样的数字是
不允许的。在数字和后缀间不允许出现空格。
对特定的元素来说,以上这些后缀还可以进行扩充:TABLE标记的WIDTH属性可以使
用"%"。它用来指定距离左边界和右边界的宽度的百分比。例如width="50%"。对COL元素
来说,WIDTH属性可以使用"*"来指定列的相对宽度,比如width="3*",这和CALS表格模
型中的表示方法是一样的。
4.5 TABLE标记
TABLE标记需要将开始和结束标记成对使用。表格标记由一个可选的CAPTION标记开头,
后面可以跟着一个或更多的COL标记,也可以是一个或更多的COLGROUP标记,然后是
可选的THEAD,TFOOT标记,最后是一个或更多的TBODY标记。
ID, CLASS, LANG and DIR
参见前文对这些属性的描述。
ALIGN
定义表格相对于当前的左边界和右边界的水平位置。ALIGN=CENTER将让表格居于左右边
界的中间,ALIGN=LEFT让表格位于左边界,而ALIGN=RIGHT让表格靠近右边界。当表
格使用ALIGN=LEFT时,用户端可能会让文字环绕在表格的右边,而ALIGN=RIGHT时,
文字环绕在表格的左边。
请注意如果你对表格使用了ALIGN=LEFT属性,而又不想让文字环绕表格的话,你可以在
表格标记的后面使用
。同样如果表格右对齐的话,则需要用
。为了防止一个右对齐的表格环绕在其他什么东西旁边,可以在表格前面
使用
。通过使用式样表,可以更好地对文字流进行控制。
WIDTH
指定表格希望的宽度。除了使用标准单位来定义宽度之外,还可以使用"%"符号来指定距离
左右边界的空白的宽度,例如width="50%"。如果不指定该属性的话,表格的宽度将由后面
所给出的布局算法来决定。
即使明确地指定了表格的宽度,我们仍然建议表格的宽度可以被扩大以便能避免单元格内容
的溢出。这里对表格宽度的增加应该尽量避免过多地改变创建者事先所指定的列的相对宽
度。为了避免产生过多的水平卷动,或是产生不切实际或不希望出现的水平卷动时,应该将
文字分为多行显示。
COLS
该属性定义了表格中所含有的列的数目。如果包含该属性的话,用户端将能够在从网络上接
受到数据后就开始动态显示表格,而不用等到所有的表格数据都传输完成后才开始。如果没
有指明WIDTH属性,在这种情况下,宽度将默认地被假设为"100%"。如果没有指定COLS
属性,那么就需要一个根据表格的内容预先设置的方案来决定列的数目,以及每一个列的合
适的宽度值。
BORDER
指定表格框线的宽度,参见标准单位。
FRAME
指定哪一边的框线需要显示。
VOID
不显示任何一边的框线。
ABOVE
顶端的框线
BELOW
底部的框线
HSIDES
顶部和底部的框线
LHS
左边的框线
RHS
右边的框线
VSIDES
左边和右边的框线
BOX
所有的四周的框线
BORDER
所有的四周的框线
"Border"值是为了保持对旧的浏览器的兼容性而保留的。如果一个文档里面包含了
,用户端将把它看成是FRAME=BORDER及BORDER=_implied_。如果文档
包含的是,那么用户端会将这个认为是FRAME=BORDER,而如
果_n=0_,则会理解为FRAME=VOID。
请注意:如果FRAME的取值能够和RULES属性以及对齐属性的取值能够保持一致的话,
那将会更加合理。例如:none, top, bottom, topbot, left, right, leftright, all。但是,不幸的是,
SGML要求每个元素的取值都必须区别于其他元素。这就给"none", "left", "right" 及"all"带来
了问题。FRAME选择这些值以避免和RULES,ALIGN以及VALIGN属性发生矛盾。这为
将来的试验保留了一种选择,因为我们估计,在将来对本方案进行修改的时候,其他的表格
元素也将会被赋予FRAME和RULES属性。HTML-MG中大多数意见认为,如果能够使用
SGML的校验工具根据列举的值来检查属性,那么这所带来的好处将超过对名称的一致性
的需求。
RULES
指定在什么地方来显示表格内部的线条。
NONE
禁止显示内部的线条。
GROUPS
THEAD,TFOOT以及TBODY元素将表格按行划分为不同的组,而COLGROUP元素将
表格按列划分为不同的组。该属性将能够在每一个由行构成的组之间显示一条水平线,而在
每一个由列构成的组之间显示一条垂直线。需要注意的是每一个表格最少有一个由行构成的
组,一个由列构成的组。
ROWS
由于RULES=GROUPS将在所有的行之间显示水平线。用户端可以在行或列构成的组之间
突出显示一条粗线。
COLS
由于RULES=GROUPS将在所有的列之间显示垂直线。用户端可以在行或列构成的组之间
突出显示一条粗线。
ALL
在所有的行和列之间都显示线条。用户端可以在行或列构成的组之间突出显示一条粗线。
如果一个文档包括或者,那么表格元素的默认
值是RULES=ALL,而如果_n=0_,那么相应地RULES=NONE。
CELLSPACING
该属性是用来保留对旧的浏览器的兼容性的。它指定了表格框架间、每一行或列中的第一个
或最后一个单元格和表格边框的距离,以及表格中其他单元格之间的距离。参见标准单位。
通过使用式样表可以对该属性有更好的控制。
CELLPADDING
该属性是用来保留对旧的浏览器的兼容性的。它指定了单元格边线和它内部的内容四周的距
离大小。参见标准单位。通过使用式样表可以对该属性有更好的控制。
如果表格或列设定了固定的宽度,CELLSPACING和CELLPADDING可能会比所指定的值
需要更多的空间。实践经验显示,如果和WIDTH的属性发生冲突的话,后者会具有更高的
优先级。虽然这并不是本方案所规定为必须的。
4.6 表格标题
CAPTION元素是可选的元素,它用来给表格提供一个标题,需要起始和结束标记成对使用。
ID, CLASS, LANG and DIR
参见前文中其他元素的该属性定义
ALIGN
该属性可以用来控制表格标题相对于表格的位置。当使用ALIGN属性的时候,该属性应该
是下列的几个值之一:TOP, BOTTOM, LEFT及RIGHT。我们推荐标题应该和表格的宽度
或高度保持一致。我们还特意不对标题的默认位置做出具体的规定。
请注意ALIGN属性在HTML中被过度地使用了,但是为了和现有的浏览器兼容,我们在这
里仍然使用了该属性。
4.7 COLGROUP元素
COLGROUP元素就像一个容器,来容纳一组列,并允许你能够给这些列设置默认的属性。
如果没有使用COLGROUP元素,表格中所有的列都被假定认为属于同一个列的组。每一
个COLGROUP元素能够容纳0个或更多的COL元素。COLGROUP需要一个起始的标记,
但是结束标记可以省略。这在定义一系列的COLGROUP元素的时候特别有用。例如
COLGROUP可以具有以下这些属性:
ID, CLASS, LANG和DIR
参见前文中其他元素的该属性定义。
SPAN
用一个正整数的值来表示在这个组里面默认的有多少列。如果COLGROUP元素中含有一
个或更多的COL元素的话,那么这个属性应该被忽略。该属性提供了一种方便的方法来组
织列,而不用指定COL元素。
WIDTH
为一个组中的列指定一个默认的宽度值,参见标准单位。另外,可以使用"*"来说明相对宽
度。例如
width=64 用屏幕像素表示的宽度
width=0.5* 0.5的相对宽度
相对宽度可以看作是各个不同列的之间的相对宽度的一个约束。如果一个COLGROUP元
素指定了一个值为0的相对宽度,那么这个组里面的所有列都会被按照它们最小的宽度进
行设定,除非它们被一个带WIDTH属性的COL元素另外做出规定。如果宽度是按照绝对
单位给出的,用户端可以用这个宽度来约束表格的宽度。"*"后缀用来简化导入那些使用
CALS表述方式的表格的工作。
ALIGN, CHAR, CHAROFF and VALIGN
指定表格单元格内部的水平和垂直对齐属性。请参看对齐属性的继承顺序。
4.8 COL元素
该可选的元素用来指定表格中列的默认设置。该元素是一个空元素,不含有内容,所以也不
会有结束标记。可以连续给出多个COL元素。COL的属性将会覆盖包含它们的COLGROUP
元素的本身属性。
ID, CLASS, LANG和DIR
参见前文中其他元素的该属性定义。
SPAN
用一个正整数的值来表示在这个元素影响的列的数目,默认为一个。如果不指定SPAN属
性的话,那么第一个COL元素将应用到第一个列,第二个元素应用到第二个列,以此类推。
如果第二个元素指定SPAN=2,那它将会应用到第二和第三个列。接下来的COL元素则应
用到第4个列,并这样继续下去。特别地,如果用SPAN=0,这意味着COL元素将应用到
从当前列直到最后列之间的所有列。需要注意的是一个COL SPAN并不定义一个组。它主
要是用来共享属性的定义。
WIDTH
定义列的宽度,参见标准单位。如果该元素跨越了若干个列,那么WIDTH属性指定的是每
个独立的列的宽度,而不是整个跨越的宽度。此外,可以使用"*"后缀来说明相对宽度。
例如
width=64 用屏幕像素表示的宽度
width=0.5* 0.5的相对宽度
相对宽度可以看作是各个不同列的之间的相对宽度的一个约束。如果一个COL元素指定了
一个值为0的相对宽度,那么该列会按照它最小的宽度进行设定。如果宽度是按照绝对单
位给出的,用户端可以用这个宽度来约束表格的宽度。当导入那些使用CALS表述方式的
表格时,使用"*"后缀来简化导入工作。
ALIGN, CHAR, CHAROFF和VALIGN
指定表格单元格内部的水平和垂直对齐属性。请参看对齐属性的继承顺序。
4.9 表格的表头,表体和脚注元素
表格可以分为表头和表体部分。THEAD和TFOOT元素是可选的,但是一个或更多的
TBODY元素却是必须的。如果一个表格只包含TBODY部分,那么TBODY的开始和结束
标记可以省略,因为处理程序可以猜到这些元素。如果有一个THEAD元素的话,那么必须
使用THEAD的起始标记,而如果后面紧跟着一个TFOOT或者是TBODY的起始标记的话,
THEAD的结束标记可以被省略。同样的,这也适用于TFOOT标记。
注意,这里的定义也为那些按照旧的模型建立的表格提供了兼容性,如果有THEAD的结束
标记,TFOOT和TBODY也可以被省略。
THEAD,TFOOT以及TBODY元素为表格的显示提供了一种更加方便的控制方法。如果表
格正文有很多行,用户端代理可能会使用一个可以滚动的区域来容纳表体正文。当表格输出
到一个使用分页机制的设备上时,表格必须在页边界的地方断开。THEAD,TFOOT以及
TBODY元素能够让用户端在每一页的末尾都显示表格的脚注,而在页的开头显示表格的标
题,中间则是连续显示表格的正文。
在标记的摆放顺序上,TFOOT标记在TBODY前面,这样浏览齐可以在接受到所有的表格
数据前就开始显示脚注。这在将那些十分长的表格显示在滚动区域时或者是将表格分割成很
多页,进行分页输出的时候特别有用。
每一个THEAD,TFOOT以及TBODY元素都必须包括一个或更多的TR元素。
ID, CLASS, LANG和DIR
参见前文中其他元素的该属性定义。
ALIGN, CHAR, CHAROFF和VALIGN
指定表格单元格的水平和垂直对齐属性,参见对齐属性的继承顺序。
4.10 表格的行(TR)元素
TR或者说表格的行元素可以看作是表格中一行单元格的容器。结束标记可以被省略。
ID, CLASS, LANG和DIR
参见前文中其他元素的该属性定义。
ALIGN, CHAR, CHAROFF和VALIGN
指定表格单元格的水平和垂直对齐属性,参见对齐属性的继承顺序。
4.11 表格单元格: TH以及TD
TH元素用来表示表头单元格,而TD元素用来表示表格的数据。这让用户端即使在没有式
样表的情况下,也可以清楚地区分表头和正文的单元格。
单元格可以跨越多行或多列,也可以为空。跨越多行的单元格也计入每一个跨越的行中的列
的总的数目,但只在标记中出现一次(在第一个跨越的行中)。行的数目是由TR元素的数
目所决定的。除此以外,任何由单元格跨行而产生的行将被忽略。
如果一个表格的列的数目比在某一行中的单元格的数目要多(因为包括了跨行的单元格),
缺少的单元格将显示在表格的右边,并作为空单元格看待。如果语言属性指定为从右到左的
显示顺序,那么缺少的单元格就显示在表格的左边。
我们还可以创建带有重叠单元格的表格,如下所示:
显示的效果如下:
/-----------\
| 1 | 2 | 3 |
| |-------|
| | 4 | |
|---|...|---|
| 5 : | 6 |
\-----------/
在这个例子里,标为4和5的单元格互相重叠了。在这种情况下,如何进行显示将由各用
户端独立处理。
单元格的AXIS和AXES属性使得我们可以为单元格定义简洁的标记。当将表格转化为语音
的时候,这些属性可以用来针对表头为每个相应的单元格提供简短的名字。另一种情况是,
当你将来想处理表格的内容,并将它们导入到数据库的时候。这些属性可以被用来定义为数
据库的字段名。表格的类属性可以让软件来辨认哪些表格可以这样处理。
ID, CLASS, LANG和DIR
参见前文中其他元素的该属性定义。
AXIS
该属性为表头单元格定义了一个简短的名字,例如可以在将此表格转化为语音的时候使用。
默认为表格的内容
AXES
该属性是一个用逗号分割的axis名字的列表,指明了适用于该单元格的行和列标题头的内
容。举例来说,当将表格转化为语音的时候,可以用该属性来确定单元格在表格中的位置。
如果没有该属性,用户端将试图察看其所在的列或同行的左边单元格(对某些语言来说是右
边的单元格)的设置来查找相应的表头单元格。
NOWRAP, 例如:
如果使用该属性,将迫使其所在的单元格里的文字不进行自动换行。如果随便使用的话,可
能会导致非常宽的单元格。该属性是为了保留对旧的浏览器的兼容性而设置的。如果使用式
样表的话可以有更好的控制(例如对文字溢出的处理控制)。
ROWSPAN, 例如:
该属性用一个正整数来指明该单元格跨越了多少行。默认的ROWSPAN数目是1。特别地,
ROWSPAN=0将使得该单元格从现在所在行开始跨越到表格的最后一行。
COLSPAN, 例如:
该属性用一个正整数来指明该单元格跨越了多少列。默认的COLSPAN数目是1。特别地,
COLSPAN=0将使得该单元格从现在所在列开始跨越到表格的最后一列。
ALIGN, CHAR, CHAROFF和VALIGN
指定表格单元格的水平和垂直对齐属性,参见对齐属性的继承顺序。
请注意:我们建议那些应用者对TH和TD的Netscape1.1宽度属性提供支持,虽然这并不
是本方案的内容。我们也建议文档的创建者用COL元素的宽度属性来进行替代。
5.推荐的布局算法
如果TABLE元素中的COLS属性指定了列的数目,那么表格就可以按照一个固定的布局进
行显示,否则,将要使用下面所描述的自动布局算法。
5.1 固定布局算法
对这种算法而言,它假定列的数目是已知的。列的宽度默认地被设置为同样地大小。创建者
可以通过使用COLGROUP或COL元素来指定相对或绝对的列宽以覆盖该数值。表格的默
认宽度是当前左右边界之间的距离,但是也可以被TABLE元素的WIDTH属性的值所改变,
或者由列的绝对宽度的数值所决定。如果列既包含了绝对宽度,也包含了相对宽度,那么第
一步是要将表格的宽度减去用绝对宽度定义的列的总宽,然后剩下的宽度再按照相对宽度定
义的列进行分配。
如果仅仅靠表格语法是不足以保持属性值的一致性的。例如COLS属性所指定的列的数目
可能和用COL元素所指定的列的数目不一致,这也就可能和表格单元格所表示的列的数目
不一致。当列过于狭窄以至于容纳不了单元格的内容的时候,就会发生更多的问题。TABLE
元素或者是COL元素所指定的表格的宽度都可能引起单元格内容的溢出。所以我们推荐用
户端在这些情况下,要尽量能够进行恢复。比如说用连字符来连接单词,或者在连接点未知
的情况下,试着分隔单词。
如果碰到了一个不可分割的元素,而且该元素将引起单元格内容的溢出的话,用户端可能需
要考虑调整列宽,并且重新显示表格。在最坏的情况下,如果调整列宽或者是让单元格的内
容变成可滚动的都不合适的话,可能需要考虑截去一部分的内容。在任何情况下,如果单元
格的内容被分割开或者是被截断了,都应该用一种适当的方法向用户指明这一点。
5.2 自动布局算法
如果在表格开始的标记里面缺少COLS属性,那么用户端就应该采用自动布局算法。它线
性地根据表格的大小,使用两种方法来处理表格的数据和范围。
在第一种情况下,自动折行被禁止,用户端保留对每个单元格最小和最大的宽度的记录。最
大的宽度由最宽的行所决定。因为禁止折行,所以段落都排在一个长的整行中,除非用
元素来折行。最小的宽度由最宽的单词或者是图片或者是类似的东西所决定,当然还要考虑
到行首的缩进以及列表符号等等。换句话说,如果你想要将单元格的内容在其自己的窗口位
置格式化输出的话,应该先确定你所使用的最小宽度不会导致单元格内容溢出。如果允许用
户端可以分隔单词将减少水平滚动的产生,或者避免更糟的情况—单元格内容的截断。
这个处理过程也适用于那些单元格内容中的任何嵌套表格。在嵌套表格中单元格的最小和最
大宽度被确定为这些表格的最小和最大宽度,同时也是容纳这些表格的单元格的宽度。这个
算法针对所有的单元格内容来说都是线性的,而且从更广义的角度来看,是和嵌套的深度无
关的。
为了应付单元格内字符的对齐,该算法还要考虑每个列中的三种情况:左对齐字符,右对齐
字符以及未指明对齐者。所以一个列的最小宽度是max(最小的左对齐的 + 最小的右对齐
的, 最小的未指明对齐的)
单元格的最小和最大宽度被用来确定列的相应的最小和最大宽度。而这些宽度又被用来确定
表格的最小和最大宽度。请注意单元格可以包含嵌套表格,但这并不会使得代码变得过分复
杂。接下来的一步就是根据所有的空间来为每个列分配空间(也就是在左右边界之间的空
间)。
对于那些跨越多列的单元格来说,一个简单的被Arena所使用的方法就是给每个所涉及的
列均匀地分配最小/最大宽度。一个稍微复杂一点的方法是利用那些没有跨越列的单元格的
最小/最大宽度来计算如何分配跨越的宽度。实践显示这两种方法的结合将能够满足大多数
表格的要求。
在分配列的宽度的时候,表格的边框以及内部单元格四周的边距也应该一并考虑进去。这有
三种情况:
1. 表格的最小宽度等于或者大于实际的空间宽度。在这种情况下,按照最小的宽度来分配
空间,并且让用户进行水平滚动。如果要转化为盲文的话,则有必要将这些单元格替换为包
含全部内容的参考符号,按常规放置在表格的前面。
2. 表格的最大宽度正好和实际的空间宽度吻合。在这种情况下,按照列的最大宽度分配空
间。
3. 表格的最大宽度大于实际的空间宽度,但是最小宽度小于这个宽度。在这种情况下,我
们把实际的宽度和最小的表格宽度的差值记作W,把表格的最大宽度和最小宽度的差值记
作D。对每个列来说,我们把该列的最大宽度和最小宽度的差值记作d。现在将列的宽度设
定为最小的宽度加上d?W/D。这就可以使那些最大宽度和最小宽度相差很大的列比那些相
差比较小的列要宽。
对于所有在第一种情况中如此得到最小和最大宽度的嵌套表格来说,这一步被重复地执行。
在这种情况下,父表格(也就是说包含嵌套表格的表格)的单元格的宽度扮演着上述步骤中
当前窗口的大小。这个处理过程对所有的嵌套表格都作递归处理。然后,最顶级的表格按照
所分配的宽度进行显示。嵌套的表格则作为父表格单元格中的内容依次进行显示。
如果表格的宽度已经由WIDTH属性进行了指定,那么用户端将尽量让列的宽度能和表格的
宽度相匹配。但是如果这个WIDTH属性将会导致列的实际宽度小于它们所需要的最小宽度
(也就是说最低限度)的话,表格将不会局限于该属性的值。
如果用COL元素指定了相对宽度,那么该算法将做出一些修改,将在最小的列宽度的基础
上作一些增加以便能满足相对宽度的限制。COL元素也应该仅仅是作为一个参考,这样列
就不会被设定为小于它们的最小宽度了。同样地,列也不应该被设定得过宽而使得表格被撑
开得远远大于窗口的宽度。如果某个COL元素指定了一个值为0的相对宽度,那么列就应
该总是按照其最小的宽度来设置。
6.HTML表格DTD
DTD也就是文档类型定义(document type definition)为HTML表格的语法提供了正式的
定义。
7.参考文章
Arena
W3C的HTML3浏览器, 参见http://www.w3.org/pub/WWW/Arena/.
Arena原本是用来作为HTML3前的HTML+方案的概念演示而创作的。该浏览器现
在正被重新改写以便能在为HTML3提供应用的同时,也支持式样表以及客户端的script编
程。
CALS
连续的获取以及生命周期的支持(Continuous Acquisition and Life-Cycle
Support),(以前被称为计算机辅助获取以及后备支持(Computer-aided Acquisition and
Logistics Support)),即CALS,是美国国防部为了武器装备系统上数据的高效存取,创
建,交换的策略而设计的,更多的详细信息可以在美国海军的CALS页面上获得:
http://navysgml.dt.navy.mil/cals.html
HTML 2.0 (RFC1866)
超文本标记语言方案2.0版,由T.Berners-Lee和D. Connolly于1995年11月提
出,详细信息可以在http://www.w3.org/pub/WWW/MarkUp/ 或者
ftp://ds.internic.net/rfc/rfc1866.txt查阅。
HTML 3.0
超文本标记语言方案3.0版。最初的草案在1995年3月发布。对其的精简完善工
作仍在进行中,新的表格草案也是其中的一部分,W3C在HTML方面的相关工作可以在
http://www.w3.org/pub/WWW/MarkUp/找到。
RFC 1766
"Tags for the Identification of Languages", 由H. Alvestrand,
UNINETT于1995年3月发布。该文档可在下述地址下载:
ftp://ds.internic.net/rfc/rfc1766.txt.
8.安全性考虑
在本备忘录中没有讨论安全性方面的问题。
9.作者地址
Dave Raggett W3C
EMail: dsr@w3.org
The World Wide Web Consortium: http://www.w3.org/
RFC 1942 HTML Tables HTML中的表格
RFC文档中文翻译计划
相关推荐
京东创始人刘强东和其妻子章泽天最近成为了互联网舆论关注的焦点。有关他们“移民美国”和在美国购买豪宅的传言在互联网上广泛传播。然而,京东官方通过微博发言人发布的消息澄清了这些传言,称这些言论纯属虚假信息和蓄意捏造。
发布于:1年以前
|
808次阅读
|
详细内容 »
日前,据博主“@超能数码君老周”爆料,国内三大运营商中国移动、中国电信和中国联通预计将集体采购百万台规模的华为Mate60系列手机。
发布于:1年以前
|
770次阅读
|
详细内容 »
据报道,荷兰半导体设备公司ASML正看到美国对华遏制政策的负面影响。阿斯麦(ASML)CEO彼得·温宁克在一档电视节目中分享了他对中国大陆问题以及该公司面临的出口管制和保护主义的看法。彼得曾在多个场合表达了他对出口管制以及中荷经济关系的担忧。
发布于:1年以前
|
756次阅读
|
详细内容 »
今年早些时候,抖音悄然上线了一款名为“青桃”的 App,Slogan 为“看见你的热爱”,根据应用介绍可知,“青桃”是一个属于年轻人的兴趣知识视频平台,由抖音官方出品的中长视频关联版本,整体风格有些类似B站。
发布于:1年以前
|
648次阅读
|
详细内容 »
日前,威马汽车首席数据官梅松林转发了一份“世界各国地区拥车率排行榜”,同时,他发文表示:中国汽车普及率低于非洲国家尼日利亚,每百户家庭仅17户有车。意大利世界排名第一,每十户中九户有车。
发布于:1年以前
|
589次阅读
|
详细内容 »
近日,一项新的研究发现,维生素 C 和 E 等抗氧化剂会激活一种机制,刺激癌症肿瘤中新血管的生长,帮助它们生长和扩散。
发布于:1年以前
|
449次阅读
|
详细内容 »
据媒体援引消息人士报道,苹果公司正在测试使用3D打印技术来生产其智能手表的钢质底盘。消息传出后,3D系统一度大涨超10%,不过截至周三收盘,该股涨幅回落至2%以内。
发布于:1年以前
|
446次阅读
|
详细内容 »
9月2日,坐拥千万粉丝的网红主播“秀才”账号被封禁,在社交媒体平台上引发热议。平台相关负责人表示,“秀才”账号违反平台相关规定,已封禁。据知情人士透露,秀才近期被举报存在违法行为,这可能是他被封禁的部分原因。据悉,“秀才”年龄39岁,是安徽省亳州市蒙城县人,抖音网红,粉丝数量超1200万。他曾被称为“中老年...
发布于:1年以前
|
445次阅读
|
详细内容 »
9月3日消息,亚马逊的一些股东,包括持有该公司股票的一家养老基金,日前对亚马逊、其创始人贝索斯和其董事会提起诉讼,指控他们在为 Project Kuiper 卫星星座项目购买发射服务时“违反了信义义务”。
发布于:1年以前
|
444次阅读
|
详细内容 »
据消息,为推广自家应用,苹果现推出了一个名为“Apps by Apple”的网站,展示了苹果为旗下产品(如 iPhone、iPad、Apple Watch、Mac 和 Apple TV)开发的各种应用程序。
发布于:1年以前
|
442次阅读
|
详细内容 »
特斯拉本周在美国大幅下调Model S和X售价,引发了该公司一些最坚定支持者的不满。知名特斯拉多头、未来基金(Future Fund)管理合伙人加里·布莱克发帖称,降价是一种“短期麻醉剂”,会让潜在客户等待进一步降价。
发布于:1年以前
|
441次阅读
|
详细内容 »
据外媒9月2日报道,荷兰半导体设备制造商阿斯麦称,尽管荷兰政府颁布的半导体设备出口管制新规9月正式生效,但该公司已获得在2023年底以前向中国运送受限制芯片制造机器的许可。
发布于:1年以前
|
437次阅读
|
详细内容 »
近日,根据美国证券交易委员会的文件显示,苹果卫星服务提供商 Globalstar 近期向马斯克旗下的 SpaceX 支付 6400 万美元(约 4.65 亿元人民币)。用于在 2023-2025 年期间,发射卫星,进一步扩展苹果 iPhone 系列的 SOS 卫星服务。
发布于:1年以前
|
430次阅读
|
详细内容 »
据报道,马斯克旗下社交平台𝕏(推特)日前调整了隐私政策,允许 𝕏 使用用户发布的信息来训练其人工智能(AI)模型。新的隐私政策将于 9 月 29 日生效。新政策规定,𝕏可能会使用所收集到的平台信息和公开可用的信息,来帮助训练 𝕏 的机器学习或人工智能模型。
发布于:1年以前
|
428次阅读
|
详细内容 »
9月2日,荣耀CEO赵明在采访中谈及华为手机回归时表示,替老同事们高兴,觉得手机行业,由于华为的回归,让竞争充满了更多的可能性和更多的魅力,对行业来说也是件好事。
发布于:1年以前
|
423次阅读
|
详细内容 »
《自然》30日发表的一篇论文报道了一个名为Swift的人工智能(AI)系统,该系统驾驶无人机的能力可在真实世界中一对一冠军赛里战胜人类对手。
发布于:1年以前
|
423次阅读
|
详细内容 »
近日,非营利组织纽约真菌学会(NYMS)发出警告,表示亚马逊为代表的电商平台上,充斥着各种AI生成的蘑菇觅食科普书籍,其中存在诸多错误。
发布于:1年以前
|
420次阅读
|
详细内容 »
社交媒体平台𝕏(原推特)新隐私政策提到:“在您同意的情况下,我们可能出于安全、安保和身份识别目的收集和使用您的生物识别信息。”
发布于:1年以前
|
411次阅读
|
详细内容 »
2023年德国柏林消费电子展上,各大企业都带来了最新的理念和产品,而高端化、本土化的中国产品正在不断吸引欧洲等国际市场的目光。
发布于:1年以前
|
406次阅读
|
详细内容 »
罗永浩日前在直播中吐槽苹果即将推出的 iPhone 新品,具体内容为:“以我对我‘子公司’的了解,我认为 iPhone 15 跟 iPhone 14 不会有什么区别的,除了序(列)号变了,这个‘不要脸’的东西,这个‘臭厨子’。
发布于:1年以前
|
398次阅读
|
详细内容 »
登录后可以享受更多权益
收藏有用的文章
整理自己的代码
查阅浏览足迹
多个平台共享账号
去登录
首次使用?从这里 注册