表格而不是DIVs
可能重复:
为什么不在HTML中使用表格进行布局?
在什么条件下你应该select表格而不是HTML编码中的DIV?
整个“表格和Divs”的东西几乎没有错过的标志。 这不是“表”或“股利”。 这是关于使用语义的HTML。
即使div标签在一个布局良好的页面中只扮演一小部分angular色。 不要过度使用它。 你不应该需要这么多,如果你把你的HTML一起正确。 像列表,字段集,图例,标签,段落等可以取代大多数div或跨度通常用来完成。 Div应该主要用于表示合乎逻辑的div区域 ,并且在绝对必要时仅用于额外的布局。 桌子也是如此; 当你有表格数据时使用它,但不是以其他方式。
然后你有一个更多的语义页面,你不需要在你的CSS中定义很多类。 您可以直接定位标签。 可能最重要的是,你有一个页面,比谷歌(轶事)会比同等的表格或div-heavy页面好得多。 最重要的是,它将帮助您更好地与一部分观众build立联系。
所以如果我们回过头来看看表格和div的关系,我认为我们已经到了div被过度使用和表格使用不足的地步。 为什么? 因为当你真的思考这个问题的时候,有很多东西属于“表格数据”的范畴,往往被忽视。 例如,在这个网页上的答案和评论。 它们由多个logging组成,每个logging具有相同的一组字段。 他们甚至存储在一个SQL服务器表,大声哭泣。 这是表格数据的确切定义。 这意味着一个html表格标签绝对是一个很好的语义select来布局像Stack Overflow这样的post。 同样的原则也适用于许多其他的事情。 使用表标签来设置三列布局可能不是一个好主意,但是将它用于网格和列表当然是好的…除了当然,当你真的可以使用ol或ul(列表)标签。
当我提出的数据的确是表格。
我发现一些网页devise师在一些网站上的表格数据上使用div是很荒谬的。
另外一个用途就是表格,尤其是标签:文本框对。 这在技术上可以用div框来完成,但是在表格中这样做要容易得多,而且人们可以争辩说label:textbox对实际上是表格式的。
我曾经做过纯粹的CSS,但我放弃了那种追求混合表/ css方法的追求,作为最实用的方法。 讽刺的是,这也是因为可访问性。 试过在Sidekick上做CSS吗? 什么样的恶梦! 曾经见过如何在新的浏览器上呈现基于CSS的网站? 元素会重叠或只是不正确显示,我不得不closuresCSS。 有没有尝试调整基于CSS的网站? 如果他们在浏览器中使用缩放function,他们看起来很糟糕,往往不利于盲人! 如果你用桌子来做,他们的规模要好得多。 当人们谈到无障碍的时候,我发现很多人都不知道,因为我是残疾人,而且他们不是。 他们真的和盲人一起工作吗? 聋人? 如果可访问性是主要问题,为什么地狱是99%的video没有closures字幕? 许多CSS纯粹主义者使用AJAX,但没有意识到AJAX常常使内容无法访问。
实际上,如果单元格堆叠(在移动设备上看到的),可以使用单个表格作为主布局,因为您在逻辑stream程中提供信息。 CSS理论听起来不错,但在现实生活中有太多的黑客行为,这是违背“纯洁”理念的。
由于使用了CSS的表格方法,我节省了很多时间devise一个网站和保养更容易。 更less的黑客,更直观。 我收到来自人们的电话越来越less,说:“我插入了一个DIV,现在看起来都搞砸了!” 更重要的是,绝对没有可访问性问题。
通常,只要你不使用表格来提供布局。
表格 – >数据
Divs – >布局
(主要是)
理想情况下,HTML表格只能用于表格数据。 然而,表格也是创build一些特定types的基于网格的布局的最简单的方式,在交叉兼容的CSS中很难模拟。 本文将更详细地介绍该问题。
CSS规范支持使用display:table | table-cell属性来支持与表格标记等效的基于网格的布局。 但是,这部分规范在Internet Explorer中不受支持(尽pipe所有其他现代浏览器都支持该规范)。
这给你一个两难的问题:要么使用HTML表格布局 – 这是不好的风格,因为它是表示标记。 或者尝试模仿一个带有浮点数的网格,并在CSS中取消定位。 这往往变成错综复杂,难以维护的CSS。
如果可访问性或语义纯度对您来说很重要,那么请使用纯CSS。 如果你只是想让你的布局网格工作,没有太多的麻烦,你应该使用一个表。
我会区分公共网站的HTML(表格no-no-no,divs yes-yes-yes)和半公开或专用networking应用程序的HTML,我倾向于更喜欢表甚至页面布局。
大多数“表格不好”的可敬原因通常只是公共网站的问题,而不是Web应用程序的问题。 如果我可以通过使用TABLE而不是使用复杂的CSS + DIV来获得相同的布局,并且在浏览器中具有更一致的外观,那么我通常会继续并推出TABLE。
正如许多海报已经提到,你应该使用表来显示表格数据。
表格是在HTML 3.2中引入的,这里是关于它们用法的相关段落:
[表格]可用于标记表格材料或用于布局目的…
同意托马斯 – 一般的经验法则是,如果它是有意义的表格,你可以使用表格。 否则不是。
只是不要使用表格作为页面布局,这是人们与他们的主要问题。
我通常会select表格来显示表单types的信息(名字,姓氏,地址等),其中在多行中标注标签和字段非常重要。 DIV我用于布局。
当然,桌子是包裹在一个DIV 🙂
我可以看到表格的参数,但有一个更好的select…你只需卷起袖子学习CSS。
例如:
<fieldset> <legend>New Blog Post</legend> <label for="title">Title:</label> <input type="text" name="title" /> <label for="body">Body:</label> <textarea name="body" rows="6" cols="40"> </textarea> </fieldset>
您可以采取该HTML和布局的forms或者并排标签,或在文本框顶部的标签(这是更容易)。 具有灵活性真的有帮助。 它的表格也比表格等效的要less。
有关CSS表单的一些优秀示例,请查看以下优秀示例:
http://jeffhowden.com/code/css/forms/
http://www.sitepoint.com/article/fancy-form-design-css/
http://www.smashingmagazine.com/2006/11/11/css-based-forms-modern-solutions/
表格是为表格内容而devise的,而不是用于布局。
所以,如果你使用它们来显示数据,不要感觉不好。
我在两种情况下使用表格:
1)表格数据
2)任何时候我希望我的布局dynamic调整自己的内容
如果您的数据可以以二维网格布局,请使用<table>
。 如果不行,不要。 对于其他任何东西都使用<table>
是一种破解(虽然经常没有正确的select,尤其是在涉及到与旧版浏览器的兼容性方面)。 不使用<table>
显然应该是一个同样不好的东西。 <div>
和<span>
并不是一切; 事实上,在语义层面上完全没有意义,他们应该不惜一切代价避免使用更多的语义select。
在这个问题上,我觉得这个网站很有趣。
1)用于显示表格数据。 日历就是表格数据的一个例子,起初并不总是显而易见的。
2)我在医疗账单公司工作,几乎所有的内部工作布局都是使用CSS完成的。 然而,我们不时从保险公司那里得到纸质表格,我们的帐单必须使用,一个程序将把它们转换成可以通过内部networking填写和打印的html格式。 为了确保表单被接受,他们需要非常密切地匹配原始的纸质版本。 对于这些只是简单地回到表格。
表格用于表格数据。 如果将它放在电子表格中是有意义的,那么就使用一个表格。 否则,有一个更好的标签,例如div,span,ul等
我相信只是表格内容。 例如,如果你打印出一个数据库表或类似电子表格的数据到HTML。
如果您希望具有正确的语义HTML,那么您应该只为表格数据使用表格。
否则,你使用表的所有你想要的,但可能有办法使用div
和CSS来做同样的事情。
@Marius:
布局表格数据是? 不,几年前它是标准的,现在不是这样:-)
另外一个用途就是表格,尤其是标签:文本框对。 这在技术上可以用div框来完成,但是在表格中这样做要容易得多,而且人们可以争辩说label:textbox对实际上是表格式的。
我倾向于给标签一个固定的宽度,或显示在上面的行。
@Jon Limjap
对于标签:文本框,既不是div也不是表格: <dl>
s是
另外一个用途就是表格,尤其是标签:文本框对。 这在技术上可以用div框来完成,但是在表格中这样做要容易得多,而且人们可以争辩说label:textbox对实际上是表格式的。
我看到相当数量,特别是MS开发人员。 过去我做了相当多的工作。 它有效,但忽略了一些可访问性和最佳实践因素。 您应该使用标签,input,字段集,图例和CSS来布局表单。 为什么? 因为这是他们的目标,所以效率更高,我认为可访问性是非常重要的。 但这只是我个人的偏好。 我认为每个人都应该在谴责之前先这样做。 它快速,简单,干净。
当任何浏览器加载包含表格的页面时,浏览器需要更多时间才能正确呈现标签。 在使用div的情况下,浏览器占用更less的时间,因为它更轻。 而更多的我们可以申请的CSS使div显示为表,
桌子通常是重的重量和div重量轻。
很明显,DIV用于布局,但由于这个原因,我发生了“被迫”使用电子表格在div结构内部进行网格布局的情况:
百分比值的添加不允许与div正确alignment,而在表单元格上expression的相同值给出了预期的结果。
所以我认为表格不仅对数据有用,而且对于上面的情况也是有用的,除此之外,表格仍然是符合W3C的浏览器和替代浏览器(例如对于残疾人)正确地解释它们。
Div是简单的divisions
,它们不会被用来将页面中语义上相关的部分分组。 除此之外,它们没有任何隐含的含义。
表格最初是为了显示科学数据,例如屏幕上的实验室结果。 Dave Raggett当然不打算用它来实现布局。
如果你还记得上面的内容,如果你通常希望在表格中看到这些东西,那么我认为它是相当清楚的,那么这就是合适的标签,如果它是纯粹的布局,那就用别的东西来实现你的需求。