阿七 |
2006-04-04 09:50 |
Web世界中,表格无处不在。但你真正了解它吗?你知道什么是“多重宽度”、“行组”、“列组”以及“thead”、“tfoot”、“tbody”吗?呵呵,请跟我来,让我们上上下下、仔仔细细地打量它一番 ... L'zE<3O'3 2
;JQX! j|:dYt`WM 概要 2t+D8 d|c< 9n1ZVP.ag 从最初在Netscape 2.0中诞生一直到今天,表格(Table)一直是Web世界HTML语言的绝对主角。千万不要认为表格是一堆令人烦恼的数字与日期布局,只有会计部门的人才会对它感兴趣。事实上,表格有许多潜能值得我们去开发!巧妙地使用它,能让灿烂缤纷的Web世界看起来更美! 95=gY q@(1Yivk 9<yAQ?7L 本文就将全面介绍表格在web世界的十八般武艺,主要包括: 0,HqE='w S]}}A LO)GTyzvJ 表格的规划 {m[s<A( 基本表格结构 Yc^%zxub 表格和css !O|ql6^; 表格说明了什么 >R!"P[* 表格的标题和摘要 j~bAbOX12
拆分表格 L>dkrr)e 表格列 (S`6Q 行和列的跨单元合并,空单元格 NUCiY\td 行组 #%:c0= 表头 H$!+A 表格中的标题 we3tx{j 指定表头信息 <47k@Ym 绘制表格 s
=Df ` 单元格间距 [E7
MsX 单元格 ?]c+j1i 列宽度 [$pmPr2 表格宽度 ^"9*
'vTtc 设置表格 *^]~RhjB 使用表格进行页面布局 [:iv4>ZZ 表格的规划 qTT,U9]: T>A{qu 03k?:D+5 基本表格结构 LH2PTW\b!6 /)EY2Y'
%v+=;jw 表格的基本结构很简单:使用TABLE元素定义表格。表格包含若干行,每行有若干单元格,行、列分别用TR和TD元素表示。以下是一个关于Acme计算机公司销售部工作情况的基本表格: y+9h~,:A ;#1Iiuh "7,FXTaer pu+ur=5& <H3>Are Bugs Helping M.O.R.O.N.S. Sales?</H3> Tde0~j} ('C7=u&F <P>The table below lists the number of reported bugs per 1000 lines of @*>Sw>oet code in M.O.R.O.N.S. against the product sales.</P> t{d
SX?<nt -)jax <TABLE> bc I']WgB- <TR> t\4[``t <TD>Year</TD> <TD>Bugs</TD> <TD>Sales</TD> 2&Jdf </TR> ?kTWpXx"= <TR> 2;$k(x] <TD>1995</TD> <TD>2.3</TD> <TD>500,000</TD> ;`dh
fcU </TR> V0*3;n <TR> 2HD]?:Fk7 <TD>1996</TD> <TD>3.2</TD> <TD>1,700,000</TD> nV*y`.+ </TR> $w#r"= ) <TR> G8Z4J7^ <TD>1997</TD> <TD>5.6</TD> <TD>8,200,000</TD> h3*
x[W </TR> B@y(. <TR> Rp9fO?ZjHt <TD>1998</TD> <TD>12.3</TD> <TD>33,000,000</TD> r?/A?DMe </TR> IA&L] </TABLE> ])DX%$f 23!;}zHp 下面是上面HTML代码的输出结果: MJ`
3ta R\|lt)h laKuOx} .@q-B+Eg V'Kgdj Are Bugs Helping M.O.R.O.N.S. Sales? P>ceeoYQuA 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. 4+;$7"fJ 4Y> Yi*n Year Bugs Sales ulFzZHJ 1995 2.3 500,000 ~[WF_NU1y 1996 3.2 1,700,000 #oeG!<Mn 1997 5.6 8,200,000 a]Eg!Q 1998 12.3 33,000,000 N,dT3we f/,>%j=Ms =J-5.0Q\_\ 7hW+T7u? 从以上的例子里我们可以清楚地看到表格的结构,其中有许多的标记。可喜的是,TR和TD的结束标记是可以隐含不写的,因此,例子可以象下面一样写得更简单些,而同样能够得到相同的效果: :<Y}l-x 2aw&YZ&Xo <TABLE> $
,SF@BhO <TR><TD>Year<TD>Bugs<TD>Sales i,A#&YDl <TR><TD>1995<TD>2.3<TD>500,000 <ljI;xE <TR><TD>1996<TD>3.2<TD>1,700,000 n% 'tKU\q <TR><TD>1997<TD>5.6<TD>8,200,000 ml0.$z <TR><TD>1998<TD>12.3<TD>33,000,000 UJfT!==U </TABLE> n\Fp[9+Z\ HoV^Y6 这看起来是一个好消息,对吧?但是,你却不应该这么做。原因是:对于Navigator,如果在表格元素中忽略了任何一个标记,就会引起一个错误,从而导致整个文档中的CSS格式混乱。丢失结束标记是引发CSS错误的第一个原因,它的确切结果是无法预测的,这和文档以及设置的具体CSS属性有关。实际上,当发现CSS不正常时,尤其是在外观格式不正常时,应该首先检查是否丢掉了表格标记。 NjPDX>R\K b`yZ|j'ikd 表格和CSS DFhXx6] WwH+E]^e+ 现在我们面临一个有关表格的棘手问题。HTML表格要比CSS出现早得多,所以它们的很多格式可以通过HTML而不是CSS来控制。同样,像我们以后会看到的那样,表格的格式化可能是一件麻烦的事情。CSS 1 没有提供控制表格外观的任何手段。CSS 2 中的确有一系列控制手段,但问题是它们中的大部分都还没有被实现。现在讨论它们,就象讨论如何管理附近恒星系统中的殖民地一样。虽然我希望浏览器支持CSS表格属性能更早成为现实,我们还是从比较实际的角度出发,看看现在如何控制表格外观。
JO=[YoTr 6u`F
d# {oc igR0 在我们讨论的CSS中,还是有一些起作用的东西的。可以在表格、它的单元格和行上设置背景颜色,而且,还可以在它的列上设置。可以在单元格内的元素上设置CSS属性,并且它们会像预期的那样起作用。还可以对表格的单元格本身使用块和布局属性。关于表格和CSS的另一个bug是:无论在Explorer还是Navigator中,大多数属性并不能由表格从它们的上一级中继承,对表格的行和单元格来说也是如此。良好的习惯是显式地设置表格元素的CSS属性以确保它们起作用。 |
|