我正在创建一个餐厅菜单,我不确定是否应该使用表格,特别是如果我应该使用嵌套表格。这有效吗?我认为餐馆菜单可以被视为表格数据。
使用嵌套表创建结构在任何浏览器中都非常方便和稳定,但我不知道这是否是正确的方法。这是它的样子:
http://jsbin.com/ejoqad/1/edit
<table>
<tr>
<td>
<table>
<tr>
<td>PIZZA</td>
</tr>
<tr>
<td>onions,cheese</td>
</tr>
</table>
</td>
<td>3.5 $</td>
</tr>
</table>
此外,当我尝试针对不同设备优化设计时,这种结构可能会给我带来麻烦吗?
答案 0 :(得分:2)
这当然有效,但你应该只使用<br />
代替整个表来打破一条线。
答案 1 :(得分:0)
根据HTML 5 spec,使用rowspan
属性可以通过较少的标记实现相同的效果。
基本思想是<td>
元素可以跨多个行或列(对行使用rowspan
,对列使用colspan
),方法是将属性设置为整数值。因此,<td rowspan="2">
是跨越表的两行的单元格。
这些属性存在于HTML 3.2中,因此兼容性非常好(我测试回IE8没有问题)。
这里有更新的jsbin供参考:http://jsbin.com/ejoqad/5/edit
答案 2 :(得分:0)
看起来您的菜单是一个数据表,因此无论布局如何,使用HTML表在语义上都是正确的。干得好。但是我不知道你为什么需要使用两个嵌套表。
答案 3 :(得分:0)
HTML表用于存储表格数据,如矩阵。
您的菜单可能是一个列表吗?它可以使用uls。布局样式比表格更灵活。
如果您的意图纯粹是表格数据并且在布局中没有任何意义,那么请尝试稍后进行布局:p
如果您有意将其用作布局容器,那么您的想法是错误的。我认为使用表格进行布局的任何情况都是因为CSS很麻烦,例如不同高度的列,或者我想要没有JS的情况下,某些区域的静态宽度/高度和中间的区域是灵活的。