查看Stack Overflow的源代码后,我注意到他们经常使用表格和内联CSS,同时我发现他们使用内联表格属性格式化有些奇怪。
<table width="100%">
我只是好奇他们为什么要使用表格来构建模板,而不是流行(或曾经流行)的DIV。
此外...使用CSS包含和在同一页上使用内联CSS的目的(我知道可能有很好的答案/解决方案...我只是想知道它们是什么)
我理解在表格中使用表格数据没有问题...但在这种情况下,Stack Overflow的表格用于结构。
查看Stack Overflow的源代码后,我注意到他们经常使用表格和内联CSS,同时我发现他们使用内联表格属性格式化有些奇怪。
<table width="100%">
我只是好奇他们为什么要使用表格来构建模板,而不是流行(或曾经流行)的DIV。
此外...使用CSS包含和在同一页上使用内联CSS的目的(我知道可能有很好的答案/解决方案...我只是想知道它们是什么)
我理解在表格中使用表格数据没有问题...但在这种情况下,Stack Overflow的表格用于结构。
表格与Div的争论是毫无意义的。
使用表格进行布局可能会引起特定问题。其中之一便是在单个表格内构建整个网站布局,以处理页边距和位置等,由于表格的呈现方式,这通常意味着网站只能在浏览器引擎接收到所有内容后才能进行渐进式呈现,用户可能需要等待很长时间的空白页面,这是一个“坏事”。还有一些在mozilla/ie5时期存在的表格渲染不一致性问题,使得跨浏览器表格布局的一致性相当麻烦,尤其是在单元格中使用图像时。
纯div支持者喜欢谈论内容与表现,因为从理论上讲,HTML 4.01是纯内容,全部有意义。 div在抽象意义上提供了有意义的组织结构,然后通过CSS专门提供表现。在这些争论中,表格仅在用于包含实际表格数据时才有效。当然,这忽略了对于任何足够复杂的布局,几乎总会有很多空的div漂浮在周围,仅仅是为了支持必要的表现CSS挂钩,打破了这种抽象的第一层。一旦打破了这种抽象,就没有法律规定,在您的布局只需要在HTML中使用一个没有意义内容的表现挂钩时,div比表格更合适。如果你只能选择一个无意义的div或表格来使你的布局正常工作,那么选择哪个更容易。
最终,它关乎于了解所有方法的限制并使用最合适的方法。有许多情况下,使用表格比设置毫无意义的div数组更简单,并且表格呈现问题并不适用。如果表格很小并且表示内部内容的一个小块,则呈现延迟并不重要。
我没有参与SO的开发,以下是我的一般性看法:
我发现,表格
通常比基于CSS
的布局更易于使用,并且在浏览器中表现更加一致。
此外,为了完成任务而随意添加CSS
样式是常见的做法。不过,这些可以稍后重构。
至于为什么他们选择在HTML中设置表格的宽度而不是在CSS中,我无从得知。
我知道SO在刚开始时使用了一个真正的设计师。但我不知道那个设计师是给他们提供了网站应该长什么样子的图片还是实际的标记。
请不要因此责备我。我们并非都是CSS大师。
SO可能是由程序员编写的,而不是Web开发人员。
<table><tr><td id="left-column"><td id="right-column"></tr></table>
要容易得多。display:table
属性,它已经成为CSS2标准的一部分超过十年);
- 使用笨重的CSS解决方案,这些方案费用高昂且难以维护;
- 放弃语义纯度并使用TABLE元素。Jeff和他的团队正在快速而粗糙地完成它。这是一个非常快速的开发周期,没有时间去清理大部分杂乱的内容。
面对现实吧 - 除非您是专家,否则CSS对于表格结构来说是耗时的。
内联样式和包含的CSS只是他们试图快速完成它的标志,至少在第一次迭代中不用担心“正确”的做法。正确的方法就是任何能让它快速完成的方法。
IE8将是最后一个为CSS display: table-*值添加支持的主要浏览器,因此这种区别将消失。希望这将结束有关CSS难度的抱怨,人们可以停止使用呈现方式来污染标记。
我觉得自己还算比较聪明,至少不会太低于平均水平,但是我觉得CSS布局完全不直观。表格非常直观易懂。我认为衡量一项技术好坏的一个标准就是你在阅读时需要多少次参考手册。与CSS相比,表格在这方面完胜CSS。每每使用CSS时,我都不得不深入挖掘才能弄清楚如何做类似这样的事情。
表格和布局
SO的布局不是基于表格的。
快速浏览一下,我会说SO的布局80%是基于div的,20%是基于表格的。表格用在标题和“徽章”框上。在我的看法中,表格用于徽章是合适的(毕竟它是一个项目列表),但对于标题来说就不太好了。
除此之外,其他地方都使用div。
内联CSS
同样,许多内联定义被使用(可能是为了快速模拟网站的结构),但SO正确地使用了CSS(来为div提供样式和打印格式)。