对于CSS,如果我们将显示设置为表格,表格行或表格单元格,那么我们为什么不直接使用它<table><tr><td>呢?



这是针对响应式Web设计的,我正在查看一些现有的代码,了解如何完成表单。

一位同事使用CSS display: tabledisplay: table-cell设置了"名字"标签的容器div<input>,并在输入框下设置了"错误消息"。他提到它在Chrome和Firefox上运行良好,但在IE 8上有一些奇怪的地方。请参阅上的简化版本http://jsfiddle.net/DzEww/7/

这样,该表单就可以在任何桌面浏览器和可能只有320像素宽的移动设备上很好地显示。

  1. 首先,我想知道,这是做响应式Web设计的首选方法吗?

  2. 我想知道如果我们使用CSS tabletable-cell,那么为什么我们不直接使用HTML <table><tr><td>来实现呢?(例如:http://jsfiddle.net/DzEww/12/)使用CSS表显示来显示它,并期望它是一个表的结构,但不将其标记为表,这感觉有点奇怪。如果我们确实希望结构是一个表,那么我们为什么不直接使用<table><tr><td>来标记它呢?

(注意,这个表单实际上是一个很好的表单标签和表单字段的表格,所以使用<table><tr><td>实际上可能很有意义。)

HTML中的表元素是一个用于描述数据的语义结构。如果数据是表格格式的(通常是可以存储在电子表格中的数据),则应该使用表元素,它可能需要标记为HTML中的表。

虽然display属性的table只是一个在浏览器中设置类似表格的外观的工具,但它没有语义。这种技术有可能轻松创建复杂的网格布局。

使用一个table元素进行布局会告诉用户,"这个数据是表格格式的。"使用一组将显示属性设置为tabletable-cell的div,除了要求用户以某种方式直观地呈现它们之外,对用户没有任何意义

当然,当我们真正拥有的是表格数据时,我们也应该注意不要在一堆div元素上使用display: table;

最新更新