阿七 |
2006-04-04 09:50 |
Web世界中,表格无处不在。但你真正了解它吗?你知道什么是“多重宽度”、“行组”、“列组”以及“thead”、“tfoot”、“tbody”吗?呵呵,请跟我来,让我们上上下下、仔仔细细地打量它一番 ... XiW1X6 |mEWN/@C /F0q8j0 概要 Tc WCr S_ATsG*( 从最初在Netscape 2.0中诞生一直到今天,表格(Table)一直是Web世界HTML语言的绝对主角。千万不要认为表格是一堆令人烦恼的数字与日期布局,只有会计部门的人才会对它感兴趣。事实上,表格有许多潜能值得我们去开发!巧妙地使用它,能让灿烂缤纷的Web世界看起来更美!
Gl~l
w~66G @oXGa>Ru 本文就将全面介绍表格在web世界的十八般武艺,主要包括: fkV@3sj t<H"J__& .U1wVIM 表格的规划 zx.qN 基本表格结构 Itl8#LpLM 表格和css |2(q9j 表格说明了什么 dOhSqx56 表格的标题和摘要 -&Rv=q> 拆分表格 pj>R9zpn_ 表格列 (5yM%H8: 行和列的跨单元合并,空单元格 !=[Y yh 行组 ) c@gRb~ 表头 l]*RiK2AC 表格中的标题 )qWwh)\;! 指定表头信息 u?^V4 +V 绘制表格 iN;Pg_Kq 单元格间距 S=@+qcI 单元格 il0K^i 列宽度 (v]%kXy/G 表格宽度 v:O{"s 设置表格 h]4xS?6O 使用表格进行页面布局 G~9m,l+ 表格的规划 I Xc `Ec ;_}pIO bWe2z~dP 基本表格结构 M8},RR@{ i VSNara omG2p 表格的基本结构很简单:使用TABLE元素定义表格。表格包含若干行,每行有若干单元格,行、列分别用TR和TD元素表示。以下是一个关于Acme计算机公司销售部工作情况的基本表格: ]H1mj#EWU i<uU_g'M v+ $3 is.t,&H4P] <H3>Are Bugs Helping M.O.R.O.N.S. Sales?</H3> Cfi{%,em _>gz& <P>The table below lists the number of reported bugs per 1000 lines of ]kj^T?&n. code in M.O.R.O.N.S. against the product sales.</P> Yh<F-WOo2 N_Us6X <TABLE> Q'<AV1< <TR> oz!)x\m*H <TD>Year</TD> <TD>Bugs</TD> <TD>Sales</TD> F`D$bE;| </TR> ZFZ'&"+ <TR> .f~9IAXP` <TD>1995</TD> <TD>2.3</TD> <TD>500,000</TD> I9?\Jbqg </TR> (KQLh,h7 <TR> z{XB_j6\= <TD>1996</TD> <TD>3.2</TD> <TD>1,700,000</TD> hh;kBv07o </TR> jWdviS9&g <TR> Ib(C`4% <TD>1997</TD> <TD>5.6</TD> <TD>8,200,000</TD> "Q:Gd6?h; </TR> Q 3WD!Z8y <TR> w2B)$u <TD>1998</TD> <TD>12.3</TD> <TD>33,000,000</TD> aCZ0-X?c </TR> -}7$;QK&a </TABLE> BMp'
.9Qgm H/a gt 下面是上面HTML代码的输出结果: A
mZXU
b f3UCELJ `Vvi]>,cg` 4"&-a1N tZ]gVgZg Are Bugs Helping M.O.R.O.N.S. Sales? IMM;LC%rD9 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. k_pv6YrE 9#DXA} Year Bugs Sales Ip8ml0oG 1995 2.3 500,000 l b( 1996 3.2 1,700,000 Jm_)}dj3o 1997 5.6 8,200,000 (T1< (YZ
1998 12.3 33,000,000 @.;+WQE # ~<
]z \[9VeqMU sH6;__e 从以上的例子里我们可以清楚地看到表格的结构,其中有许多的标记。可喜的是,TR和TD的结束标记是可以隐含不写的,因此,例子可以象下面一样写得更简单些,而同样能够得到相同的效果: B.N#9u-vW ztVTXI%Kz <TABLE> KVZ
B`c$<t <TR><TD>Year<TD>Bugs<TD>Sales GDLw_usV <TR><TD>1995<TD>2.3<TD>500,000 ^50dF:V(1 <TR><TD>1996<TD>3.2<TD>1,700,000 5FZw
(E <TR><TD>1997<TD>5.6<TD>8,200,000 CX]1I|T5 <TR><TD>1998<TD>12.3<TD>33,000,000 qvn.uujYS </TABLE> ny-:%A KZKE&bTx 这看起来是一个好消息,对吧?但是,你却不应该这么做。原因是:对于Navigator,如果在表格元素中忽略了任何一个标记,就会引起一个错误,从而导致整个文档中的CSS格式混乱。丢失结束标记是引发CSS错误的第一个原因,它的确切结果是无法预测的,这和文档以及设置的具体CSS属性有关。实际上,当发现CSS不正常时,尤其是在外观格式不正常时,应该首先检查是否丢掉了表格标记。 bZ*=fdh 3d}v?q78 表格和CSS Sa g)}6+ bq/Aopfr 现在我们面临一个有关表格的棘手问题。HTML表格要比CSS出现早得多,所以它们的很多格式可以通过HTML而不是CSS来控制。同样,像我们以后会看到的那样,表格的格式化可能是一件麻烦的事情。CSS 1 没有提供控制表格外观的任何手段。CSS 2 中的确有一系列控制手段,但问题是它们中的大部分都还没有被实现。现在讨论它们,就象讨论如何管理附近恒星系统中的殖民地一样。虽然我希望浏览器支持CSS表格属性能更早成为现实,我们还是从比较实际的角度出发,看看现在如何控制表格外观。 &%OY"Y~bI!
Lt*P& %bnXZA2Sx 在我们讨论的CSS中,还是有一些起作用的东西的。可以在表格、它的单元格和行上设置背景颜色,而且,还可以在它的列上设置。可以在单元格内的元素上设置CSS属性,并且它们会像预期的那样起作用。还可以对表格的单元格本身使用块和布局属性。关于表格和CSS的另一个bug是:无论在Explorer还是Navigator中,大多数属性并不能由表格从它们的上一级中继承,对表格的行和单元格来说也是如此。良好的习惯是显式地设置表格元素的CSS属性以确保它们起作用。 |
|