为什么CSS属性显示:table added?

时间:2013-03-23 03:38:26

标签: html css

任何人都可以向css / html学习者解释为什么我会使用display:table来设置通用html元素(例如<div>),而不是简单地使用HTML表格标签?在我看来,后者将是一个可供选择的,因为它的实现尤其是为了呈现表数据,但我知道前者不会在没有充分理由的情况下产生。我只是无法得到一个体面的解释。我通常非常可靠的朋友,Google无法为我提供太多帮助。

提前谢谢! 尼尔

3 个答案:

答案 0 :(得分:2)

添加了

display:tabledisplay:table-rowdisplay:table-cell,以用作display<table><tr>的默认<td>属性分别

在默认设置之外,它们通常用于centering text verticallypseudo-element clearfixing之类的黑客攻击。基本上不要这样做,除非你需要其中一个黑客,特别是如果你想要实现一个表,不要这样做,因为它在语义上不会导致可访问性问题。

警告,using display:table has semantic effects in some screen readers。这可能会导致您网站中的某个部分对使用辅助技术的用户具有多重意义。

答案 1 :(得分:0)

有很多理由不使用HTML表而是构建CSS表。但首先,请检查您网站的统计信息以及您需要支持的浏览器。您可能需要支持使用不支持display的旧浏览器的访问者:table - 例如IE7 http://caniuse.com/#search=display%3Atable

使用CSS表的一个原因是将格式与内容分开。如果您曾想在以后将数据操作到另一个结构中,则必须替换所有表代码而不是仅仅调整CSS。

另一个原因是使表格数据响应。如果数据是div,则可以对数据进行更多控制,而不是HTML表。您可以选择将内容重新包装为列表,或隐藏,显示,滚动,截断...您认为合适的内容。虽然HTML表格中的某些内容仍然可行,但并非所有内容都是如此。

答案 2 :(得分:0)

有几个原因,包括:

  1. 使用表格布局设置XML文档的样式。 CSS不仅适用于HTML。
  2. 以CSS术语记录HTML table元素的默认呈现。
  3. 使用(简单)表格布局可以使用例如标记的数据。 div个元素。