我正在研究一个模板,我知道使用CSS比使用HTML表格定位更好...但是,在我的div上获得两全其美并且使用类似表格的样式是可以接受的吗?例如:将表格设置为表格,可以接受吗?
display: table;
这不仅会帮助我解决粘性页脚问题,还可以避免与浮动相关的痛苦。不知道这是否会被认为是一个丑陋的黑客或雄辩的解决方案。思考?
我正在研究一个模板,我知道使用CSS比使用HTML表格定位更好...但是,在我的div上获得两全其美并且使用类似表格的样式是可以接受的吗?例如:将表格设置为表格,可以接受吗?
display: table;
这不仅会帮助我解决粘性页脚问题,还可以避免与浮动相关的痛苦。不知道这是否会被认为是一个丑陋的黑客或雄辩的解决方案。思考?
我个人认为使用display: table
没有错。我不建议广泛使用它,但有时它可以非常有用地使你按照你想要的方式显示,而不必添加一堆额外的HTML或者处理繁重的CSS规则以获得某些东西来看待你的方式想要它。
如果它适用于您的开发中的客户端浏览器,并且可以节省您在其他领域的痛苦或复杂性,而不是随意使用它。
这取决于。尽管CSS div是HTML中最好的解决方案(除非你需要IE6支持......),而表格(就标记而言)正在成为一项古老的技术,一方面可以提出最多的有史以来在CSS上制作的残障和愚蠢的解决方案,另一方面,您可以创建一个没有单独div的HTML杰作。
所以,如果你认为你足够好的CSS,使用它。如果你不确定,或者你是一个真正的桌面主人,桌子应该做这项工作。
我不同意CSS divs是任何事情的最佳解决方案。表格通常是诸如显示表格数据(GASP)的最佳解决方案。表和CSS不是一个/或命题。您可以使用CSS对表格进行样式设置,并且可以对div使用类似桌面的显示。事实上,许多最好的JavaScript表格功能库都依赖于HTML表格结构。总之,使用最适合在页面上显示特定内容集的标记元素。 –
我个人从未使用display: table
,但这个链接似乎对语法非常精通。
http://www.onenaught.com/posts/201/use-css-displaytable-for-layout
我通常坚持花车和阅读这之后,可能会给display: table
机会。当我使用花车时,我必须跟上它的某种clear: both
股利。对于这个问题,display: table
似乎是一个更高效和可接受的解决方案。
丑陋的黑客...您可以使用clearfix方法处理浮动,并且有大量粘性页脚技术(如this之一)可以使用。
另外display: table
not supported in IE7 and below如果这是一个问题。
你应该向前走,并使用你的布局较新的更多的语义元素 - 头,部分,页脚等,当你只想提供一些表格数据求助于表 -s。
没有理由害怕或憎恶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
你可以自由地将父/祖父元素设置为'table'或'table-row',并且只需在相邻的同胞上使用'table-cell'。浏览器将生成匿名表/行来包含它们。 – cimmanon
如前所述表表格数据工作的伟大。我还喜欢在您收到大量动态数据时使用表格。对于模板开发,我会坚持使用CSS。
诚实地说,如果你使用html表格,你需要坚持CSS,毕竟外观和感觉是非常重要的 – Sohail
你可以在programmers.stackexchange.com上得到很多有趣的意见,但这种感觉更像一个意见问题比一个明确的答案。 –
我也是,当我第一次听到这个并且尝试它的时候觉得很脏,但是我还没有明白为什么。 – Rob