2012-11-15 31 views
1

我正在研究一个模板,我知道使用CSS比使用HTML表格定位更好...但是,在我的div上获得两全其美并且使用类似表格的样式是可以接受的吗?例如:将表格设置为表格,可以接受吗?

display: table; 

这不仅会帮助我解决粘性页脚问题,还可以避免与浮动相关的痛苦。不知道这是否会被认为是一个丑陋的黑客或雄辩的解决方案。思考?

+0

诚实地说,如果你使用html表格,你需要坚持CSS,毕竟外观和感觉是非常重要的 – Sohail

+2

你可以在programmers.stackexchange.com上得到很多有趣的意见,但这种感觉更像一个意见问题比一个明确的答案。 –

+0

我也是,当我第一次听到这个并且尝试它的时候觉得很脏,但是我还没有明白为什么。 – Rob

回答

1

我个人认为使用display: table没有错。我不建议广泛使用它,但有时它可以非常有用地使你按照你想要的方式显示,而不必添加一堆额外的HTML或者处理繁重的CSS规则以获得某些东西来看待你的方式想要它。

如果它适用于您的开发中的客户端浏览器,并且可以节省您在其他领域的痛苦或复杂性,而不是随意使用它。

0

这取决于。尽管CSS div是HTML中最好的解决方案(除非你需要IE6支持......),而表格(就标记而言)正在成为一项古老的技术,一方面可以提出最多的有史以来在CSS上制作的残障和愚蠢的解决方案,另一方面,您可以创建一个没有单独div的HTML杰作。

所以,如果你认为你足够好的CSS,使用它。如果你不确定,或者你是一个真正的桌面主人,桌子应该做这项工作。

+2

我不同意CSS divs是任何事情的最佳解决方案。表格通常是诸如显示表格数据(GASP)的最佳解决方案。表和CSS不是一个/或命题。您可以使用CSS对表格进行样式设置,并且可以对div使用类似桌面的显示。事实上,许多最好的JavaScript表格功能库都依赖于HTML表格结构。总之,使用最适合在页面上显示特定内容集的标记元素。 –

0

我个人从未使用display: table,但这个链接似乎对语法非常精通。

http://www.onenaught.com/posts/201/use-css-displaytable-for-layout

我通常坚持花车和阅读这之后,可能会给display: table机会。当我使用花车时,我必须跟上它的某种clear: both股利。对于这个问题,display: table似乎是一个更高效和可接受的解决方案。

1

丑陋的黑客...您可以使用clearfix方法处理浮动,并且有大量粘性页脚技术(如this之一)可以使用。

另外display: tablenot supported in IE7 and below如果这是一个问题。

你应该向前走,并使用你的布局较新的更多的语义元素 - 部分页脚等,当你只想提供一些表格数据求助于 -s。

+0

我也有这个问题,关于他是否用它作为拐杖来代替缺失的技能(当然,所有的应有的尊重)。 – Rob

+0

提供HTML语义元素+1 - 未充分利用。 –

+3

它是一个丑陋的黑客?这是有原因的:要使用 - 包括语义元素,如* header *,* section *,* footer *等。 – cimmanon

1

没有理由害怕或憎恶display: table。是的,价值是table,但它是公平的游戏和完全有效的CSS 2.1。

表格在标记中是“不好的”,因为它们被滥用和应用的方式并未反映其预期的语义目的,即呈现表格数据。如果你有表格数据,那么不使用表格就像使用表格进行布局一样重要。

让我们回到主题。对display: table的支持在IE < 8中有点不雅,并且在Android中不存在< 2.1和iOS < 3.2。如果您需要支持这些,请使用float

该属性最简单的用法是将display: table应用于父元素display: table-row给子元素,display: table-cell应用于子元素。如果你偏离这个级别,结果可能会有点奇怪。 (我有这方面的亲身经历。)如果遇到困难,请查看CSS表格模型的W3C规范。

来源:
http://caniuse.com/css-table
http://www.w3.org/TR/CSS21/tables.html#table-display

+1

你可以自由地将父/祖父元素设置为'table'或'table-row',并且只需在相邻的同胞上使用'table-cell'。浏览器将生成匿名表/行来包含它们。 – cimmanon

0

如前所述表表格数据工作的伟大。我还喜欢在您收到大量动态数据时使用表格。对于模板开发,我会坚持使用CSS。

相关问题