0

人们普遍认为应该避免在 HTML 中使用表格进行布局。但每条规则都有例外。我正在设计一个 SPA(单页应用程序)——其页面类似于桌面应用程序使用的布局。

显然 HTML 不适合这些类型的页面,但我别无选择。使用 DIV 实现这些布局简直就是地狱,需要混合 CSS 技巧、硬编码值,甚至是调整大小事件的 JS 计算。我最近问过这个关于使用网格框架实现这些布局的问题。

但后来我停下来重新考虑基于表格的布局是否合适。典型的批评似乎不适用于 SPA 的独特案例:

  • 内容与布局的分离——因为 SPA 并不是真正的内容(它只是一个带有 AJAX 填充数据的骨架),所以这个论点不适用。这只是一个界面;我不希望谷歌索引它。

  • 表的可维护性较差——在这种情况下不是。使用 DIV 实现这一点必须经历的 CSS 地狱的维护成本要高得多。

  • 表格的渲染速度较慢——当然,但是我们将使用替代方法创建的复杂布局将需要比表格更多的计算来渲染。哎呀,我们通常使用 JS 调整大小事件来补偿固有的限制。浏览器在渲染引擎中本地执行此操作会更有效率。

鉴于这些论点,基于表格的布局是否适合 SPA 的特定情况,还是我没有考虑其他一些重要因素?还有更好的选择吗?

4

1 回答 1

1

过去人们对桌子的看法是错误的。很多一无所知的人,都在推动non-table layout,event,虽然当时根本没有任何意义,尤其是还有ie5+6要操心的时候。有很多误解,例如。谷歌关心语义代码。它从来没有,也永远不会,因为人们弄错了,你无法解释它。

然而,现在终于有了一个不使用表的实际理由:

媒体查询和响应式设计

在响应式设计中,如果您有 2 列,则在小屏幕上将一列放到底部是有意义的。例如,几列可以成为电话屏幕上的一列。

您不能对表格执行此操作。

在我看来,这是表格中最重要的一个问题。大多数其他论点只不过是精神自慰。

还有其他布局,例如砖石(参见例如http://masonry.desandro.com/),我认为仅靠表格很难实现。但是对于全高列的经典问题,表格是正确的解决方案,尽管大多数人更喜欢可怕的解决方法,添加大量脆弱的标记和 css 只是为了伪造一张表格。

但现在不同了,因为表格无法为您提供响应所需的灵活性。

于 2013-07-31T08:15:27.143 回答