| 阿七 |
2006-04-04 09:50 |
Web世界中,表格无处不在。但你真正了解它吗?你知道什么是“多重宽度”、“行组”、“列组”以及“thead”、“tfoot”、“tbody”吗?呵呵,请跟我来,让我们上上下下、仔仔细细地打量它一番 ... ^Ycn&`s sq_
yu(
VXPsYR& 概要 'i:S=E
F xey?.2K1A 从最初在Netscape 2.0中诞生一直到今天,表格(Table)一直是Web世界HTML语言的绝对主角。千万不要认为表格是一堆令人烦恼的数字与日期布局,只有会计部门的人才会对它感兴趣。事实上,表格有许多潜能值得我们去开发!巧妙地使用它,能让灿烂缤纷的Web世界看起来更美! w&eq
*q K!a7Hg NCp]!=uM; 本文就将全面介绍表格在web世界的十八般武艺,主要包括: o0kKf+[ %Y=
~,m5dP#[bV 表格的规划 D\Fu4Eg 基本表格结构 Dc9Fb^]QOG 表格和css R-6km Tex> 表格说明了什么 CqLAtS X7 表格的标题和摘要 \7WZFh%: 拆分表格 LIRL`xU7 表格列 YeI|&FMX 行和列的跨单元合并,空单元格 OzV|z/R2' 行组 GrA}T` ] 表头 RY}:&vWDk 表格中的标题 4oPr|OKj{* 指定表头信息 Nazr4QU 绘制表格 72\o6{BiC 单元格间距 }LwKi-G? 单元格 snVeOe#'S 列宽度 ^.>XDUO F 表格宽度 TUi< 设置表格 9u1Fk'cxG, 使用表格进行页面布局 S~ZRqL7ZO 表格的规划 72sBx3 ; Fv3:J~Yf pW5PF)([ 基本表格结构 R 5Cy% TnLblkX GD<pqm`vVY 表格的基本结构很简单:使用TABLE元素定义表格。表格包含若干行,每行有若干单元格,行、列分别用TR和TD元素表示。以下是一个关于Acme计算机公司销售部工作情况的基本表格: VMW<?V
2Z nE"0?VN
W$ W4S]2P>T ~c'R7E&Bfa <H3>Are Bugs Helping M.O.R.O.N.S. Sales?</H3> ixJwv\6Y i; 3qMBVY~ <P>The table below lists the number of reported bugs per 1000 lines of qD>D code in M.O.R.O.N.S. against the product sales.</P> $F~hL?"? 4.'KT;[_1/ <TABLE> !gG\jC~n <TR> n4G53+y' <TD>Year</TD> <TD>Bugs</TD> <TD>Sales</TD> ]]_H|tO </TR> -0:B2B <TR> Xj;5i
Vq <TD>1995</TD> <TD>2.3</TD> <TD>500,000</TD>
+( V+XT </TR> et :v4^*f <TR> {y
7,n <TD>1996</TD> <TD>3.2</TD> <TD>1,700,000</TD> fSzX /r </TR> C6wlRvWn <TR> RYKV?f#[H <TD>1997</TD> <TD>5.6</TD> <TD>8,200,000</TD> P%xz"l i </TR> be5NasC <TR> pd
X"M> <TD>1998</TD> <TD>12.3</TD> <TD>33,000,000</TD> ]<\; -i) </TR> >zWVM1\\j </TABLE> xn)r6 %]@K}!)2 下面是上面HTML代码的输出结果: Eb=;D1)y] 05m/iQ G.c@4Wz+ r.;(Kx/M zVs|go>F Are Bugs Helping M.O.R.O.N.S. Sales? WS)u{
or 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. CmPix]YMQ $\@yH^hL Year Bugs Sales A4W61f 1995 2.3 500,000 U%na^Wu 1996 3.2 1,700,000 q3E_.{t 1997 5.6 8,200,000 g1`/xJz| 1998 12.3 33,000,000 #/9(^6f: ;{~F7:i
6'6@VB jq&$YmWp 从以上的例子里我们可以清楚地看到表格的结构,其中有许多的标记。可喜的是,TR和TD的结束标记是可以隐含不写的,因此,例子可以象下面一样写得更简单些,而同样能够得到相同的效果: l@om2|B #YSUPO%F <TABLE> ngN_,x7yc <TR><TD>Year<TD>Bugs<TD>Sales U<
p kg <TR><TD>1995<TD>2.3<TD>500,000 c#e_Fs <TR><TD>1996<TD>3.2<TD>1,700,000 ft[g1 <TR><TD>1997<TD>5.6<TD>8,200,000 B"I>mw <TR><TD>1998<TD>12.3<TD>33,000,000 Y2Y2>^ </TABLE> ?s5zTT0U>$
l%A~3 这看起来是一个好消息,对吧?但是,你却不应该这么做。原因是:对于Navigator,如果在表格元素中忽略了任何一个标记,就会引起一个错误,从而导致整个文档中的CSS格式混乱。丢失结束标记是引发CSS错误的第一个原因,它的确切结果是无法预测的,这和文档以及设置的具体CSS属性有关。实际上,当发现CSS不正常时,尤其是在外观格式不正常时,应该首先检查是否丢掉了表格标记。 "/?*F\5 %6"b<
MAO
表格和CSS (;a
O% `B6{y9J6 现在我们面临一个有关表格的棘手问题。HTML表格要比CSS出现早得多,所以它们的很多格式可以通过HTML而不是CSS来控制。同样,像我们以后会看到的那样,表格的格式化可能是一件麻烦的事情。CSS 1 没有提供控制表格外观的任何手段。CSS 2 中的确有一系列控制手段,但问题是它们中的大部分都还没有被实现。现在讨论它们,就象讨论如何管理附近恒星系统中的殖民地一样。虽然我希望浏览器支持CSS表格属性能更早成为现实,我们还是从比较实际的角度出发,看看现在如何控制表格外观。 6mBX{-Z[ kI3-G~2 <5(8LMF 在我们讨论的CSS中,还是有一些起作用的东西的。可以在表格、它的单元格和行上设置背景颜色,而且,还可以在它的列上设置。可以在单元格内的元素上设置CSS属性,并且它们会像预期的那样起作用。还可以对表格的单元格本身使用块和布局属性。关于表格和CSS的另一个bug是:无论在Explorer还是Navigator中,大多数属性并不能由表格从它们的上一级中继承,对表格的行和单元格来说也是如此。良好的习惯是显式地设置表格元素的CSS属性以确保它们起作用。 |
|