Web世界中,表格无处不在。但你真正了解它吗?你知道什么是“多重宽度”、“行组”、“列组”以及“thead”、“tfoot”、“tbody”吗?呵呵,请跟我来,让我们上上下下、仔仔细细地打量它一番 ...
概要
从最初在Netscape 2.0中诞生一直到今天,表格(Table)一直是Web世界HTML语言的绝对主角。千万不要认为表格是一堆令人烦恼的数字与日期布局,只有会计部门的人才会对它感兴趣。事实上,表格有许多潜能值得我们去开发!巧妙地使用它,能让灿烂缤纷的Web世界看起来更美!
本文就将全面介绍表格在web世界的十八般武艺,主要包括:
表格的规划
基本表格结构
表格的基本结构很简单:使用TABLE元素定义表格。表格包含若干行,每行有若干单元格,行、列分别用TR和TD元素表示。以下是一个关于Acme计算机公司销售部工作情况的基本表格:
<H3>Are Bugs Helping M.O.R.O.N.S. Sales?</H3>
<P>The table below lists the number of reported bugs per 1000 lines of
code in M.O.R.O.N.S. against the product sales.</P>
<TABLE>
<TR>
<TD>Year</TD> <TD>Bugs</TD> <TD>Sales</TD>
</TR>
<TR>
<TD>1995</TD> <TD>2.3</TD> <TD>500,000</TD>
</TR>
<TR>
<TD>1996</TD> <TD>3.2</TD> <TD>1,700,000</TD>
</TR>
<TR>
<TD>1997</TD> <TD>5.6</TD> <TD>8,200,000</TD>
</TR>
<TR>
<TD>1998</TD> <TD>12.3</TD> <TD>33,000,000</TD>
</TR>
</TABLE>
下面是上面HTML代码的输出结果:
Are Bugs Helping M.O.R.O.N.S. Sales?
The table below lists the number of reported bugs per 1000 lines of code in M.O.R.O.N.S. against the product sales.
| Year |
Bugs |
Sales |
| 1995 |
2.3 |
500,000 |
| 1996 |
3.2 |
1,700,000 |
| 1997 |
5.6 |
8,200,000 |
| 1998 |
12.3 |
33,000,000 |
从以上的例子里我们可以清楚地看到表格的结构,其中有许多的标记。可喜的是,TR和TD的结束标记是可以隐含不写的,因此,例子可以象下面一样写得更简单些,而同样能够得到相同的效果:
<TABLE>
<TR><TD>Year<TD>Bugs<TD>Sales
<TR><TD>1995<TD>2.3<TD>500,000
<TR><TD>1996<TD>3.2<TD>1,700,000
<TR><TD>1997<TD>5.6<TD>8,200,000
<TR><TD>1998<TD>12.3<TD>33,000,000
</TABLE>
这看起来是一个好消息,对吧?但是,你却不应该这么做。原因是:对于Navigator,如果在表格元素中忽略了任何一个标记,就会引起一个错误,从而导致整个文档中的CSS格式混乱。丢失结束标记是引发CSS错误的第一个原因,它的确切结果是无法预测的,这和文档以及设置的具体CSS属性有关。实际上,当发现CSS不正常时,尤其是在外观格式不正常时,应该首先检查是否丢掉了表格标记。
表格和CSS
现在我们面临一个有关表格的棘手问题。HTML表格要比CSS出现早得多,所以它们的很多格式可以通过HTML而不是CSS来控制。同样,像我们以后会看到的那样,表格的格式化可能是一件麻烦的事情。CSS 1 没有提供控制表格外观的任何手段。CSS 2 中的确有一系列控制手段,但问题是它们中的大部分都还没有被实现。现在讨论它们,就象讨论如何管理附近恒星系统中的殖民地一样。虽然我希望浏览器支持CSS表格属性能更早成为现实,我们还是从比较实际的角度出发,看看现在如何控制表格外观。
在我们讨论的CSS中,还是有一些起作用的东西的。可以在表格、它的单元格和行上设置背景颜色,而且,还可以在它的列上设置。可以在单元格内的元素上设置CSS属性,并且它们会像预期的那样起作用。还可以对表格的单元格本身使用块和布局属性。关于表格和CSS的另一个bug是:无论在Explorer还是Navigator中,大多数属性并不能由表格从它们的上一级中继承,对表格的行和单元格来说也是如此。良好的习惯是显式地设置表格元素的CSS属性以确保它们起作用。 |