为什么不在HTML中使用表格进行布局?[闭门]

就目前情况而言,这个问题不适合我们的问答形式。我们希望答案能得到事实、参考资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或广泛讨论。如果您觉得这个问题可以改进并可能重新打开,请访问帮助中心寻求指导。

9年前关闭的

锁定。此问题及其答案被锁定,因为该问题脱离主题,但具有历史意义。它当前不接受新答案或互动。

在HTML中,表不应该用于布局,这似乎是一种普遍的观点

为什么?

我从未(或者说实话,很少)看到有好的论据支持这一点。通常的答案是:

  • 将内容与布局分开是好的,但这是一个错误的论点;陈词滥调的思维。我想,将表格元素用于布局与表格数据没有多大关系是真的。那又怎样?我的老板在乎吗?我的用户在乎吗?

    也许我或我的同事开发人员必须维护一个网页,他们关心的是一个没有表格的maintai可启用?我认为使用表比使用div和CSS更容易。

    顺便问一下……为什么使用div或span可以很好地将内容从布局中分离出来,而不使用表呢?要获得仅使用div的良好布局通常需要大量嵌套div

  • 代码的可读性
    我认为情况正好相反。大多数人理解HTML,很少人理解CSS

  • 搜索引擎优化最好不要使用表格
    为什么?有人能提供一些证据证明这一点吗?或者谷歌声明从搜索引擎优化的角度来看不鼓励使用表格

  • 表的速度较慢。
    必须插入一个额外的tbody元素。这对于现代web浏览器来说是微不足道的。请给出一些使用表会显著降低页面速度的基准测试

  • 没有表格,布局调整更容易,请参见css Zen Garden。
    大多数需要升级的网站也需要新内容(HTML)。网站的新版本只需要新的css文件的情况不太可能出现。Zen Garden是一个不错的网站,但有点理论性。更不用说它对css的滥用了

我对使用divs+CSS代替表的好参数非常感兴趣

我将一个接一个地检查你们的论点,并试图指出其中的错误

将内容和布局分开是很好的
但这是一个错误的论点;陈词滥调

这一点也不谬误,因为HTML是故意设计的。误用元素可能不是完全不可能的(毕竟,其他语言中也出现了新的习惯用法)但是,必须平衡可能的负面影响。此外,即使今天没有反对误用<table>元素的论据,但由于浏览器供应商对该元素进行特殊处理的方式,明天可能会有。毕竟,他们知道这一点“<table>元素仅用于表格数据”,并可能利用这一事实来改进渲染引擎,在这个过程中巧妙地改变<table>的行为,从而打破以前被误用的情况

那又怎样?我的老板在乎吗?我的用户在乎吗

视情况而定。你的老板头发尖吗?那么他可能不在乎。如果她有能力,那么她会在乎,因为用户会在乎

也许是我或我的开发伙伴,他们必须维护一个网页护理…表是不是不易维护?我认为使用表比使用div和css更容易

大多数专业web开发人员似乎都反对您[需要引用]。表实际上不易维护这一点应该是显而易见的。使用表进行布局意味着更改公司布局实际上意味着更改每一页。这可能非常昂贵。另一方面,明智地使用语义有意义的HTML与CSS相结合可能会将此类更改限制在他使用CSS和图片

顺便问一下,为什么使用div或span不能很好地将内容与布局和表分开?要获得一个只有div的良好布局通常需要大量嵌套div

深度嵌套的<div>s与表格布局一样,是一种反模式。优秀的网页设计师不需要太多的深度嵌套div。另一方面,即使如此深度嵌套的div也没有表格布局的许多问题。事实上,它们甚至可以通过逻辑地将内容划分为多个部分来形成语义结构

代码的可读性
我认为情况正好相反。大多数人理解html,很少理解css。它更简单

“大多数人”不重要。专业人士很重要。对于专业人士来说,表格布局比HTML+CSS产生更多的问题。这就像说我不应该使用GVim或Emacs,因为记事本对大多数人来说更简单。或者我不应该使用LaTeX,因为MS Word对大多数人来说更简单

SEO最好不要使用表

我不知道这是不是真的,也不会用它作为论据,但这是合乎逻辑的。搜索引擎搜索相关的数据。虽然表格数据当然可能是相关的,但它很少是用户搜索的。用户搜索页面标题或类似突出位置中使用的术语。因此,排除这些术语是合乎逻辑的从过滤中获得大量内容,从而大大缩短了处理时间(和成本!)

桌子慢一些。
必须插入一个额外的tbody元素。这对于现代web浏览器来说是微不足道的

额外的元素与表的速度变慢无关。另一方面,表的布局算法要困难得多,浏览器通常必须等待整个表加载后才能开始布局内容。此外,布局缓存不起作用(CSS可以轻松缓存).这一切以前都提到过

显示一些基准测试,其中使用表会显著降低页面速度

不幸的是,我没有任何基准数据。我自己也会对它感兴趣,因为这个论点缺乏一定的科学严谨性是正确的

大多数需要升级的网站也需要新的内容(html)。网站的新版本只需要新的css文件的情况不太可能出现

一点也不。我已经研究了一些改变设计的例子,通过内容和设计的分离来简化。它经常需要改变一些HTML代码,但是变化总是更受限的。另外,设计变更必须动态地进行。考虑模板引擎,比如W所使用的模板引擎。ordPress博客系统。表格布局会彻底摧毁这个系统。我为一个商业软件做过类似的工作。能够在不更改HTML代码的情况下更改设计是业务需求之一

另一件事。表格布局使网站自动解析(屏幕抓取)更难的是。这听起来可能很琐碎,因为毕竟是谁做的?我自己也很惊讶。如果相关服务不提供web服务来访问其数据,屏幕抓取会有很大帮助。我在生物信息学工作,这是一个悲惨的现实。现代web技术和web服务还没有达到大多数开发人员和用户的要求第十,屏幕抓取是自动化获取数据过程的唯一方法。难怪许多生物学家仍然手动执行这样的任务。用于数千个数据集

发表评论