为什么我们不应该设计带有表格的网站有哪些明确而合乎逻辑的原因?好处在哪里,什么因素推动了该行业的发展?什么时候可以使用表格?

评论

在SO stackoverflow.com/questions/83073/上进行了广泛的讨论...

Google会自己使用表格,例如在adwords中。随着数以百万计的广告商记录和处理动态数据,围绕而不是CSS网格进行编码变得更加容易。我将datatables.net用于一些应用程序,您可以在他们的网站上看到谁使用该jquery插件的列表。许多站点仍然有充分的理由使用表。我只使用表,但是在处理大量需要按列分页等进行排序的动态数据时,却不使用表,而对于CSS正是为了页面布局而不使用它。

#1 楼

1)表格不应用于页面布局,因为它们是:


呈现速度慢,因为浏览器需要下载大部分(如果不是全部)表格以正确呈现
与非表格布局相比,它们需要更多的HTML,这意味着加载和呈现速度较慢,以及带宽使用量的增加
由于会快速变得复杂,它们可能是维护的噩梦
它们会破坏文本复制
它们会对屏幕阅读器产生负面影响,并可能使某些用户无法访问您的内容
它们不如使用适当的语义标记那样灵活
它们从未打算用于页面布局
/>使表格成为响应式布局非常难控制

2)将表格用于表格数据。那就是表的用途。

另请参阅:人们为什么要使用div制作桌子?

评论


是的,所以如果我有联系方式的一部分,可以使用表格,但页面的图形布局以DIV或类似的方式显示。我已经看到一些设计师在具有表格数据并使用DIV的区域中完全避免使用它们。

–隐身
2010-11-29在16:02



完全避免使用桌子的设计师不知道自己在做什么。他们误解了“不要将表格用于页面布局”的含义。

–John Conde♦
2010-11-29在16:17



完全避免使用表格是很愚蠢的,但是可以使用表格的替代方法来获取联系信息。定义列表是一个不错的选择,尤其是在实施hCard时:cagintranet.com/archive/…

–Lèsemajesté
2010-11-30 3:10

@Litso:在确定W3C的优点或缺点之前,您应该阅读W3C自己的DL规范。

–Lèsemajesté
2010-12-01 9:37



还有一个position:table CSS标记,用于创建基于表格的布局而不将其置于HTML中。在某些特殊情况下,表格仍然是布局的最佳/最简单选择。看看@ css-tricks.com/fluid-width-equal-height-columns,了解我的意思。

–伊文·普莱斯
2012年4月8日在6:17

#2 楼

表用于表格数据,而非设计。人们常常误解了使页面“无桌子”的动机。

使用表格创建布局是错误的。您应使用其他元素进行布局(div,列表,节,文章,页眉,页脚,边线等)。而且,您可以用最少的HTML / CSS达到很好的效果(使代码在语义上有意义,轻巧并且易于维护)。

当然,表格数据应该位于table元素内。如果需要,您可以通过添加thead,tfoot,tbody,th,caption等来改善表的语义。所有这些元素都旨在与表一起使用,相信我,它们可以使您的表更具描述性。

所以,事实是,请勿使用基于表的设计,而应使用适合的任何HTML / CSS解决方案。从HTML语义标记开始,然后使用CSS进行设计。这样可以确保任何人的安全。用这个作为经验法则。

#3 楼

表应该包含数据,而不是设计元素。

#4 楼

仅在显示表格数据时才使用表。否则,它们通常是显示的不佳选择。

#5 楼

不使用表格的真正原因是:

表格的默认布局是:table-layout:fixed

这告诉浏览器分析表格并修复包含元素的单元格在他们里面,这需要一些时间。 (这就是为什么表格如此适合于复杂数据的原因)

底线:表格将在呈现表格中的所有内容之后呈现,这与使用DIV元素时相反。

#6 楼

我将表格用于固定形式的Web设计结构,我知道很多人说表格是给新手使用的,其他人则说表格是给老派的,那些总是说DIVS是最好的,但事实是表格对于某些事情是更好的,而DIVS对于其他东西。

<br><p></p>更好?同样的事情

我和我的2015年新版网页设计中的旧桌子可以用我友好的移动电话100%宽度与2个侧边栏(每个200px)混合在一起,以踢向所有人。

显然,在内部表中放置越来越多的表很丑陋,这就是DIVS派上用场的地方。表可以做div不能做的事情,而div可以做表不能做的事情。

说默认表布局是固定的吗?我举一个例子。

<table width="100%" height="100%" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td width="200">left</td>
    <td width="100%">middle</td>
    <td width="200">right</td>
  </tr>
</table>


你现在看到潜力了吗?在PC和手机上看看它。是的,我什至不需要启动。

现在要对div进行同样的操作,您必须编写许多CSS代码来显示align float和crap。谁写的代码更少?我!客户需要什么?一个在1年或1个月后结束页面的家伙?

现在让我们使用divs改进设计

<div style="width:100%; min-width:1000px; height:200px;">top menu or nav</div>
<table width="100%" height="100%" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td width="200">left</td>
    <td width="100%">middle</td>
    <td width="200">right</td>
  </tr>
</table>
<div style="width:100%; min-width:1000px; height:200px;">top menu or nav</div>


5列如此漂亮使用div和表进行设计布局。

您的答案是:它们可以一起更好地工作并且速度更快,并且即使在电视和小型手机上也可以在任何设计上看起来都很好。

最近发表