人们普遍认为,不应在HTML中使用表格进行布局。
为什么?
我从来没有(或者说实话很少)对此有很好的论据。通常的答案是:
将内容与布局分开是很好的,
但这是一个谬误的论点。陈词滥调思维。我想这是真的,使用表格元素进行布局与表格数据关系不大。所以呢?我的老板在乎吗?我的用户在乎吗?
也许是我或我的同伴开发人员,他们必须维护网页……表的维护性较差吗?我认为使用表格比使用div和CSS 更容易。
顺便说一句...为什么使用div或span不能很好地将内容与布局和表格分开?仅使用div获得良好的布局通常需要大量嵌套的div。
我认为代码的可读性是相反的。大多数人了解HTML,很少人了解CSS。It's better for SEO not to use tables
Why? Can anybody show some evidence that it is? Or a statement from Google that tables are discouraged from an SEO perspective?Tables are slower.
An extra tbody element has to be inserted. This is peanuts for modern web browsers. Show me some benchmarks where the use of a table significantly slows down a page.A layout overhaul is easier without tables, see css Zen Garden.
Most web sites that need an upgrade need new content (HTML) as well. Scenarios where a new version of a web site only needs a new CSS file are not very likely. Zen Garden is a nice web site, but a bit theoretical. Not to mention its misuse of CSS.
I am really interested in good arguments to use divs + CSS instead of tables.
通常,表并不比CSS更容易或更可维护。但是,存在一些特定的布局问题,其中表格确实是最简单,最灵活的解决方案。
在表示性标记和CSS支持相同类型的设计的情况下,CSS显然是更可取的,他们中没有人会认为
font
-tags比在CSS中指定排版更好,因为CSS具有与font
-tags 相同的功能,但是在更干净的方法。但是,表的问题基本上是Microsoft Internet Explorer不支持CSS中的表布局模型。因此,表和CSS的功能不相同。缺少的部分是表格的网格状行为,其中单元格的边缘在垂直和水平方向上对齐,而单元格仍在扩展以包含其内容。如果不对某些尺寸进行硬编码,那么在纯CSS中就很难实现这种行为,这会使设计变得僵化和脆弱(只要我们必须支持Internet Explorer-在其他浏览器中,使用即可轻松实现
display:table-cell
)。因此,实际上不是要使用表还是CSS的问题,而是要认识到使用表可以使布局更灵活的特定情况的问题。
不使用表的最重要原因是可访问性。Web内容可访问性指南http://www.w3.org/TR/WCAG10/再次使用表进行布局建议。如果您担心可访问性(在某些情况下,您可能会在法律上有义务这样做),则即使表更简单,也应使用CSS。请注意,您始终可以使用CSS创建与表格相同的布局,这可能只需要做更多的工作。