`
zytszone
  • 浏览: 10499 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

重新发现HTML表格【转】

阅读更多

根据我最近的一些实践以及在和一些读者进行关于HTML表格的使用问题沟通之后,决定写这篇文章。总的来说,我注意到由于误导性信息,他们对于 table的使用有种先入为主的厌恶。事实上很多人会说”我看到永远不应该使用表格”的说法,但是这绝对是错误的!这个建议只是针对使用HTML表格来定 义网页的布局,但是表格在方便的排列数据信息行和列方面非常完美,而且如果你一定要在一个页面上显示表列数据,你就不得不使用它们!为什么不呢?然而,在 这种情况下,一些人无视了用于table的某些HTML标签的存在并且不知道该如何正确的使用它们。

 

HTML有10个表格相关标签。下面是一个带有简介的列表,但是首先,文档要被正确的定义在HTML 4.01/XHTML 1或HTML 5下面:

  • <caption> 定义表格标题(4, 5)
  • <col> 为表格的列定义属性(4, 5)
  • <colgroup> 定义表格列的分组(4, 5)
  • <table> 定义表格(4, 5)
  • <tbody> 定义表格主体(4, 5)
  • <td> 定义一个单元格 (4, 5)
  • <tfoot> 定义表格的表注(底部)(4, 5)
  • <th> 定义表格的表头 (4, 5)
  • <thead> 定义表格的表头(4, 5)
  • <tr> 定义表格的行(4, 5)

一个基本的表格结构如下:

重新认识table

它包含一个标题、头部、主体和底部。正确的HTML元素顺序是:

  1. <table>
  2. <caption>
  3. <thead>
  4. <tfoot>
  5. <tbody>

你也可以使用<col><colgroup> 来定义表格的列或为列分组:

  1. <table>
  2. <caption>
  3. <colgroup>
  4. <col>
  5. <thead>
  6. <tfoot>
  7. <tbody>

下面是一个正确的表格结构实例:

<table border="1">
	<caption>Table caption here</caption>
	<colgroup span="1" style="background:#DEDEDE;"/>
	<colgroup span="2" style="background:#EFEFEF;"/>
 
	<!-- Table Header-->
	<thead>
	<tr>
		<th>Head 1</th>
			<th>Head 2</th>
			<th>Head 3</th>
		</tr>
	</thead>
 
	<!-- Table Footer-->
	<tfoot>
		<tr>
			<td>Foot 1</td>
			<td>Foot 2</td>
			<td>Foot 3</td>
		</tr>
	</tfoot>
 
	<!-- Table Body-->
	<tbody> 
		<tr>
			<td>A</td>
			<td>B</td>
			<td>C</td>
		</tr>
		<tr>
			<td>D</td>
			<td>E</td>
			<td>F</td>
		</tr>
	</tbody>
</table>

在浏览器中的结果如下图所示:

重新认识table

关于表格的一些技巧

  • 根据w3schools的解释和用法,在一个table定义中,<tfoot>元素必须出现在<tbody>之前,这样,浏览器就可以在接受到所有数据之前呈现表注了。另外,如果不是这个顺序,将不能通过W3C的HTML4和XHTML验证,无论你声明哪种DTD。(了解更多)。
  • 在 HTML 4.01 中,表格的alignbgcolor属性不赞成使用,所以在HTML 5中不再有任何table的属性被支持(事实上,在XHTML 1.0 Strict DTD中已经不支持”align”和”bgcolor”属性了);
  • 所有主流浏览器都支持<colgroup> 标签,但是Firefox、Chrome 以及 Safari 仅支持 colgroup 元素的 span 和 width 属性;
  • css中的empty-cells:show|hide 可以设定空单元格是否显示边框。注意,这个需要设置在table而不是td/th中。IE6中比较容易遇到该问题;
  • css中的border-collapse:collapse | separate 可以设置表格的边框是否被合并成一个边框;
  • css中的border-spacing属性等效于table的cellspacing属性。

为了实现现在所提倡的表现和结构分离的开发模式,前端观察建议将页面中所有与表现层有关的东东,都用CSS来控制,不用HTML自带的属性来控制页面的表现,而table是最容易被忽略的一个。

关于table的更多详细内容可以查看W3C的文档: w3 Introduction to tables

最后留一个非常简单的问题给大家,CSS的哪个属性等效于table的cellpadding属性?

分享到:
评论

相关推荐

    ExcelToHtmlTable转换算法:将Excel转换成Html表格并展示(项目源码+详细注释+项目截图)

    转换算法的难点在于,如何处理行列合并,将Excel的行列合并模型转换成Html表格的行列合并模型。 背景故事 因实际需要,需要将Excel展现在Web界面中。 最初,想在网上找开源的东东,结果没有1个是想要的。有的特别...

    html2fpdf 中文支持

    html2fpdf 或 html2pdf 是在fpdf上开发的一个可以...在实际使用中发现,html2fpdf 对于较为简单的html页面的生成还是较为正确的,但涉及到复制样式或嵌套表格时,生成的pdf文件就不能接受了,在使用上还有很大局限性。

    python生成带有表格的图片实例

    刚开始的思路,是直接生成一个带有table标签的html文件,然后将这个文件转成图片,经过查找资料发现需要安装webkit2png,而这个库又依赖其他的东西,遂放弃。 当初的目标是直接生成一个图片,并且是只需要安装python...

    python实现PDF中表格转化为Excel的方法

    这几天想统计一下《中国人文社会科学期刊 AMI 综合评价报告(2018 年):A 刊评价报告》中的期刊,但是只找到了该报告的PDF版,对于表格的编辑不太方便,于是想到用Python将表格转成Excel格式。 看过别人写的博客,...

    word源码java-html2word:html转换成为word文档

    html转word html转换成word文档 项目简介 最近一直在做关于前端富文本生成的html代码转换成word的需求,对各种工具进行了尝试,对效果都不是很满意,最后从茫茫大海中找到一个非常好的工具,顾分享出来 主要转换方式...

    如何将PPT转word

    如果在PowerPoint中重新录入,既麻烦又浪费时间。如果在两者之间,通过一块块地复制、粘贴,一张张地制成幻灯片,也比较费事。其实,我们可以利用PowerPoint的大纲视图快速完成转换。 首先,打开Word文档,全部选中...

    form-handler:验证简单的html表单请求,轻松发送电子邮件通知。 最适合纯HTML网站

    不错,但是您会发现此类脚本有很多问题: 由于不安全,因此可以在生产服务器上阻止mail()函数。 当您使用mail()函数时,它也经常转到SPAM文件夹。 您需要验证数据是否有效。 手动验证$_POST数组非常耗时,并且需要...

    电子书架

    同时您也可以调用外部的任何一个文本编辑器(如WordPad、Microsoft Word)、网页编辑程序来对文档或者网页进行编辑,调用Microsoft Word方便您插入各种字符和表格(表格插入功能不完善);RTF-HTML转换功能,可以把...

    Text to Image-crx插件

    使用自定义背景图像轻松将文本转换为图像。 文本到图像扩展名使您可以将...如果您有功能要求或发现了要报告的错误,请在插件首页(https://mybrowseraddon.com/text-to-image.html)上填写错误报告表格。 语言:English

    web-101:Web 101

    Web 101课程概述周概述:Hy-Tech俱乐部和HTML简介:基本HTML标签简介:更多HTML标签:表格和iframe :HTML复习挑战:CSS入门:CSS选择器和HTML div /跨度:响应式设计与引导:CSS转换和转换:回顾,介绍最终项目第11...

    解决Layui选择全部,换页checkbox复选框重新勾选的问题方法

    在项目中发现layui数据表格勾选复选框checkbox的时候,转到新的一页勾选,上一次的勾选不会选中,即没有记忆功能。导致跟后台交互传递参数不全问题。 为了解决此问题,我们可以借助缓存,每勾选一个,保存到缓存变量...

    java实战开发1200例源码-gaiandb:一种基于ApacheDerby构建的轻量级数据联合技术。Gaian在“边缘”安全地访问和转换数

    数据库、文件、文本索引、电子表格等)的单一集中视图。 然而,它的主要特点是能够自动发现和联合其他 GaianDB 实例(联合节点),从而可以自动形成一个完整的网络。 图 1 - GaianDB 高层架构 图 2 - GaianDB 连接...

    MILESTONE-PROJECT-1:里程碑项目1

    欢迎来到Transfagarasan希望您准备发现一个令人惊叹的景点!如果我引起了您的注意,并且您很感兴趣,那就不要错过!!界面创建该网站的目的是通知和吸引世界各地的人们参观Transfagarasan的美景。特征!1.导航栏: ...

    .Net 对于PDF生成以及各种转换的操作

    然后我就在百度上找了找,发现搞PDF的类库很少,要么就要钱,要么就有水印,破解版的没找到。 先讲一讲我是怎么生成PDF的 1、生成PDF  这里用到了Spire.Pdf 这个类库可以在NuGet里面搜索到,上面带个小红标的就是...

    limelead:我的个人网站的内容和构建框架

    该站点以前是基于的,但是由于我并没有真正使用Go,所以我转而使用了 ,发现了Go模板引擎特质,并且最近我使用了更多的Python。 该站点中包含limeleadlib特定于站点的魔鬼,这些limeleadlib在随附的limeleadlib ...

    JavaScript Table行定位效果

    第一个问题是fixed的tr在ie7中不能进行定位,而且td在定位后并不能保持在表格中的布局,这样在原表格插tr就没意义了。 ps:fixed的相关应用可参考仿LightBox效果。 最后我用的方法是新建一个table,并把源tr克隆到...

    Word Editor-crx插件

    一个免费且易于使用的单词编辑器扩展程序,适用于您的...注意:如果您有功能要求,或者发现了要报告的错误,请在插件的首页(http://mybrowseraddon.com/word-editor.html)中填写错误报告表格。 支持语言:English

    Speech to Text (Voice Recognition)-crx插件

    语言:English 为您的浏览器使用易于使用的语音合成和识别工具! 语音到文本(语音识别)是一个... 如果您发现要报告的错误,请填写附加组主页(https://mybrowseraddon.com/speech-to-text.html)中的错误报告表格。

    Doc to PDF-crx插件

    语言:English 轻松转换并下载任何文档(doc,docx,ppt等)为PDF文件。...如果您有功能要求,或者发现了要报告的错误,请在附件的主页(http://mybrowseraddon.com/doc-to-pdf.html)中填写错误报告表格。

    医生为PDF「Doc to PDF」-crx插件

    轻松转换并下载任何文件(doc,docx,ppt等)到PDF文件。...如果您有功能请求,或者发现了要报告的错误,请在附件的主页(http://mybrowseraddon.com/doc-to-pdf.html)中填写错误报告表格。 支持语言:English

Global site tag (gtag.js) - Google Analytics