我正在开发一个“现代”网站,而我在使用CSS以使一切正常排列方面遇到了很多麻烦。如果我只是使用一张桌子,我觉得他们的布局会更容易,但我一直在避免使用<table>
标签,因为我被告知它们是“老式的”而不是正确的方式做事。
使用表格可以吗?我如何确定表何时适合,何时应该使用CSS?我只是做更容易的事吗?
答案 0 :(得分:27)
答案是肯定的,使用表格很好。一般的经验法则是,如果要显示表格数据,表格可能是一个很好的方法。你应该尽可能多地尝试使用css为你的表格设置样式。
此外,此饼图可能对您有所帮助:
alt text http://www.ratemyeverything.net/image/7292/0/Time_Breakdown_of_Modern_Web_Design.ashx
编辑:表格很好。用于显示数据。就像我的第二句话所述。问题是“可以使用表格”。答案是 - 是的,可以使用表格。这不违法。
因为即使在我的一般经验法则中暗示使用数据表,显然我还必须说明,即使海报似乎已经掌握了这个概念,否则将表用于其他任何事情都是不行的。 。因此,对于记录,一般的经验法则是不使用表格来布置您的网站。
答案 1 :(得分:23)
答案 2 :(得分:14)
基本上 - 如果您有表格数据,那么使用表格。现在真的不需要使用表格进行布局 - 当然,它们通常被认为是“更容易”,但从语义上来说,页面很糟糕,它们通常被认为是无法访问的。
参见讨论: css-discuss
和一个特别滑稽的网址 - shouldiusetablesforlayout.com
答案 3 :(得分:7)
在表的“现代”方法中,它不是关于使用表格标签或div标签,而是关于正确使用正确的标签。
表标记用于表格数据。使用它没有任何问题!
对于使用CSS,有很多教程和指南(好的和坏的)。糟糕教程的指标是:大量使用块(div)只对布局有意义,而不是对内容有意义。建议使用正确标签的正确内容并告诉您如何组成标签的好迹象。
答案 4 :(得分:4)
表仅适用于表格数据。想象一下,您必须添加一些电子表格,如数据,其中有明确的行/列标题,以及这些行中的一些数据。 例如,产品比较也是有效的表项。
答案 5 :(得分:4)
我相信表格可以显示任意行和/或列的直线数据。就是这样。表格不应再用于布局目的。
答案 6 :(得分:3)
通常,HTML标记应该描述网页的结构和内容 - 它不应该用于控制表示方面,例如布局和样式(这就是CSS的用途)。与大多数人已经说过的一样,<table>
标记应该代表表格数据 - 这些数据会显示为信息表。
人们在桌子上乱扔垃圾的原因是,在过去,没有CSS这样的东西 - 所有页面布局都是直接在HTML中完成的。标签不被认为是描述内容 - 所有人真正关心的是标签如何在Web浏览器中显示内容。因此,人们认为,由于他们可以将事物组织成行和列,因此表格必须适合于布置网页的元素。这成了一种非常受欢迎的技术 - 实际上,我打赌使用表格被认为是首选的方法来布置网页很长一段时间。
因此,当人们告诉您桌子是“老式的”时,他们特别指的是这种滥用过去非常受欢迎的<table>
标签。就像我说的那样,HTML表本身并没有什么问题,但是现在使用它们进行网页布局是没有意义的。
(另外,从纯粹务实的角度来看,使用HTML表格进行的布局非常不灵活且难以维护。)
答案 7 :(得分:2)
当您以网格/表格格式显示数据时,可以使用表格。但是,对于网站的一般结构,强烈建议您使用css驱动的div,ul,li元素来为您提供更清晰的网站。
如果您仍然决定使用表格,则必须考虑以下缺点:
你可能会在基于div的网站上花费更少的时间,但它每分钟花费的价值。
答案 8 :(得分:2)
整个“反表”运动是对深层嵌套表是布局页面的唯一方法的反应,导致HTML很难理解。
表格是表格(数据)布局的有效方法,如果表格是实现布局的最简单方法,那么无论如何都要使用表格。
答案 9 :(得分:1)
当您需要在网格中显示数据时,表始终是正确的选择。
答案 10 :(得分:1)
引用Sitepoints的书HTML Utopia: Designing Without Tables using CSS 如果您有表格数据,并且该数据的外观不如其相应数据集的其他部分的相应显示重要,那么表格是有序的。如果您有最适合在Excel等电子表格中显示的信息,则表格数据就会显示。
答案 11 :(得分:1)
我会拒绝使用表来构建您的布局。表仅对您需要表示的实际表格数据有意义。如果您花费足够的时间来计算CSS,那么您会发现使用表格进行布局更容易。请记住:用于显示数据的表。用于页面布局的CSS。
答案 12 :(得分:0)
表就是:表。
他们不赞成因为它们不应该用于布局,因为在浏览器正确定位内容之前,这是一件时髦的事情。
如果您要标记的内容实际上是一个表,那么请使用表。除此之外,尽量远离。
一件小事:将两部分文本对齐到不会分开的完全相同的行(想想,用户名和发布日期)。使用表是恕我直言的选项。
答案 13 :(得分:0)
首先让它运转起来。然后把它完美。
在完美或更好之前,以某种方式完成布局。
每天会有多少人访问您正在处理的页面?一百万?还是20?
您要花多少时间在CSS问题上而不是其他问题?你的老板是否希望你在这个问题上花费这么多时间?他/她知道你在做什么吗?
答案 14 :(得分:0)
绝对。我不知道CSS狂热者在哪里发明了表格不是自然用于“布局”的想法。自从发明以来,表格已被用于铺设,无论这些是数字,文字还是漂亮的图片。 这就是他们所做的。此外,table是(X)HTML的所有版本的一部分,因此不存在弃用问题。
答案 15 :(得分:-5)
绝对
所有HTML优惠最初都是为您定义页面的标记。在我的书中,页面上元素的绝对和相对位置属于标记。所以div和table都非常适合这个任务。选择最适合您特定需求的产品。
CSS增加了许多样式可能性和布局技巧,但它补充了HTML选项而不是替换它们。
在将某些内容视为标记或样式问题之间存在非常细微的界限。 CSS支持者会说,使用CSS,您可以完全重新定位和重新调整页面的所有大小部分。然而,我无法想象将标题放在下面,页脚在上方,并使事物以相反的顺序出现。
举个例子。你设计了一个笔记本。您知道在哪里放置主要组件,主板,冷却系统,键盘,显示器和端口。您当然可能希望重新排列一些端口连接器,它们在哪一侧以及它们出现的顺序,但您实际上并不希望将显示器放在键盘的位置,将键盘放在盖子上,让风扇吹到您的脸上,将桌面上的所有连接器都通过桌面上的孔到达。
使用表格可能会使重新排列页面上的元素变得有点困难。这可能是真的。但是,在大多数情况下,您事先知道您的页面应该是多么近似,并且您不希望彻底更改所有内容。如果你在开始工作之前不能说出来,你可能不清楚自己在做什么以及做什么。
此外,只有桌子具有弹性,可以伸展到内容的宽度/高度。没有任何其他HTML / CSS可以用来做到这一点。
一侧的CSS设计允许您创建非常可调整的设计。另一方面,它会阻止您将页面设计为可调整的内容。胜利和失败。
表也是制作非常复杂和精确接口的唯一工具。例如,页面SO非常简单。它可能可以用纯CSS完成。与此同时,您是否看到过CRM,SRM等企业级软件?所有按钮,文本字段,复选框,下拉列表都精确地位于屏幕上?祝你好运只用CSS实现那种复杂性。这些布局每天都从桌面应用程序迁移到Web(关键字:软件即服务)。
因此,选择最适合您当前需求的内容,不要相信那些CSS爱好者。实际上根本不相信任何狂热分子。