您现在的位置是:网站首页> 编程资料编程资料
标准化——表格_CSS/HTML_
2023-05-25
270人已围观
简介 标准化——表格_CSS/HTML_
对于那些刚接触CSS布局的人来说,常对如何使用表格(table)感到迷惑。我在很多地方看到人们把“避免用表格来布局”理解成“完全不使用table标签”。值得注意的是,表格是可以用的而且非常好用——只要用的正确。
是的,你得尽量的去避免用表格来布局。但是对于表格型数据,你就应该使用table。我想谈谈如何使用表格来组织表现表格型数据。在HTML和XHTML里,表格不仅仅是行(row)和单元格(cell),还有很多其他元素,特别是如果你想让数据更加容易理解。
首先来点背景知识,“避免用表格来布局”这句话可以在HTML 4.01 规范的表格介绍部分里面找到:
这样已经很明白了,尽管文档中说“应该”而不是“必须”,所以这个规范还是有弹性的。
但是本文并不是讨论是否使用表格布局,而是使用表格来组织表现表格型数据——这是表格诞生的本意。
当表格用来组织实际的数据时,不仅仅是一个编排布局的格子而已。一般人可以从表格的编排和表现上看出标题和数据单元格之间的关系。盲人或者有视觉障碍的人则不能做到这一点。如果一个表格要让那些使用屏幕阅读器或用其他非可视用户代理(UA)的人们能够理解,它则需要告诉用户代理它包含的信息之间是如何联系起来的。
幸运的是,HTML在这方面提供了很多元素和属性。然而,使用这些可以增强易用性和语义化的功能比较难而且本身不容易理解。在本文中,我尝试着解释如何使用他们。
表头, 让我们从一个非常简单的表格开始——只包含一行表头和两行三列的数据。如果用以前流行的做法,只用表格的行和单元格,写出来就如下: 没有边框和修饰,那么上面的代码在你现在的浏览器里看起来就如下: 用CSS稍微修饰一下表格,你可以使表头在图形化浏览器里面更加明显: 一个视力正常的人,很容易并且很快就可以明白表头和数据单元格之间的关系。从另一方面讲,那些使用屏幕阅读器的人可以听到如下顺序的词: 第一步——最简单的——通过适当的标出表头来使得表格更加有意义。很简单:只要使用 这个例子虽然简单,但是已经包含了足够的信息使得屏幕阅读器能够让使用者明白表头和数据单元格之间的关系。一个屏幕阅读器一般会这么读: 表格标题, 使用的时候, 当然你也可以用CSS去样式化表格标题。然而,要在不同浏览器里获得同样的效果还需要一定的技巧,这个也留给各位去实践了。 表格释义: 一般人可以很容易的决定是否研究一下表格的细节,只要瞥一眼就可以看出表格有多大、大概有什么内容。但是使用屏幕阅读器的人就不是那么容易了,除非我们给表格加上 sumary属性的内容不会被可视化浏览器显示,所以可以尽可能的让描述足够长,使得那些用“听”的浏览者了解表格的内容。当然也不要用过头了,当有需要的时候才加上summary属性,比如对于很复杂的表格,添加一个summary属性可以使用屏幕阅读器人比较简单的了解表格的内容。 缩写表头: 当屏幕阅读器遇到一个表格,每一行会把表头连每一个数据单元格一起读出来。如果表头很长,听一遍一遍的读是十分乏味的。通过使用 稍微修改一下刚才的表格,让表头更长些, 对于第一行数据,屏幕阅读器会读表头的全称,而从第二行开始即使用简称。 这样让数据表格适应布局是挺困难的,而以下的做法更为常见:即让表头尽可能的短,或者简写,使用 把表头和数据联系起来: 就我用到现在,很多表格要比上面提供的例子复杂的多。让例子复杂一点,我会移去“Company”表头,并且把第一列的数据移到表头单元格里:
公司 雇员 成立于 ACME Inc 1000 1947 XYZ Corp 2000 1973 公司 雇员 成立于 ACME Inc 1000 1947 XYZ Corp 2000 1973 公司 雇员 成立于 ACME Inc 1000 1947 XYZ Corp 2000 1973 公司,雇员,成立于,ACME Inc,1000,1947,XYZ Corp,2000,1973
。不是十分容易明白其中的关系。标签取代表头的 标签即可。 公司 雇员 成立于 ACME Inc 1000 1947 XYZ Corp 2000 1973 公司 雇员 成立于 ACME Inc 1000 1947 XYZ Corp 2000 1973 公司: ACME Inc. ,雇员: 1000,成立于: 1947.
, 以此类推。比之前好多了。标签可以为表格提供一个简短的说明,和图像的说明比较类似。默认情况下,大部分可视化浏览器显示表格标题在表格的上方中央。CSS里的caption-side属性用来控制表格标题显示的地方。大部分浏览器只能把表格标题显示在表格的上方或者下方,只有一些浏览器支持左边或者右边。这个就留给大家去试试了。 标签一定要紧接着开始的标签写,如下:
Company Employees Founded ACME Inc 1000 1947 XYZ Corp 2000 1973 Company Employees Founded ACME Inc 1000 1947 XYZ Corp 2000 1973 summary属性summary属性。这样可以提供比标签更详细的描述。Company Employees Founded ACME Inc 1000 1947 XYZ Corp 2000 1973 abbr属性abbr属性,可以给那些长的表头提供简写形式,取代表头的内容。abbr属性是可选的,大部分情况表头还是(或许是应该)比较简短的。abbr属性就可以这样用:Company Name Number of Employees Foundation Year ACME Inc 1000 1947 XYZ Corp 2000 1973 Company Name Number of Employees Foundation Year ACME Inc 1000 1947 XYZ Corp 2000 1973 title属性或者标签提供一个更长的说明。scope,id,headers属性Employees Founded ACME Inc 1000 1947 XYZ Corp 2000 1973
本站声明:
1、本站所有资源均来源于互联网,不保证100%完整、不提供任何技术支持;
2、本站所发布的文章以及附件仅限用于学习和研究目的;不得将用于商业或者非法用途;否则由此产生的法律后果,本站概不负责!
相关内容
点击排行
本栏推荐
