使用表格创建表格被认为是愚蠢的/过时的吗


is it considered stupid/old fashioned to create a form using a table?

我有时听说人们不再使用表格来格式化他们的表格,这是不是开始成为一种落后的趋势?为什么,为什么不呢?

从语义上讲,表应该包含表格数据。从这个意义上说,使用table标记没有错。

出错的地方是当人们开始使用表格进行布局时,他们这样做是因为这很容易。页面布局不是表格数据,因此在语义上不应该在表标记中。

你可以这样做,它会起作用,但你也可以冷吃蛋奶沙司,它也会起作用。这个想法更多的是正确地做,而不仅仅是做


在理想的情况下,您将能够使用<fieldset>s、<label>s和其他与表单相关的标记生成表单。

<label for="usernameID">Username:</label> <input type="text" name="username" id="usernameID" />

然后,您可以对标签和输入进行样式设置,并且您的HTML中没有任何错误。

事实上,你可能最终会用<div><span>来包装东西,但要尽量保持理智,不要过度使用它们。如果你曾经认为"我实际上在这个表单中有很多非表单标签",可能有更好的方法可以做到这一点(尽管你的方法可能仍然有效(。

几个原因:

  • 标记应该是语义的。这意味着标记中的元素应该说明一些关于内容的有意义的内容。一个段落应该在<p>标签中,在<h1><h6>中的标题中,等等。相比之下,<td>标签告诉你关于<label>的任何有意义的东西。另一方面,如果您正在创建元素周期表的表示,<td>标记是非常合适的。

    HTML5继续并加强了这一趋势,因为现在我们还获得了<nav><section>等新元素,使标记和内容之间的连接更加紧密。

  • 桌子的样式和维护都很麻烦。如果你在<label>里面有一个<input>,在<td>里面有那个<tr>里面有<tbody>里面有一<table>,那么,这是一大堆嵌套元素——谁想处理它呢?尽量减少嵌套,这样你的CSS就不会那么复杂,标记也更容易阅读。

将表用于任何非表格数据的内容通常是不合适的。这主要是因为表格对通常不会放在电子表格中的东西没有任何语义。

使用表来格式化表单很容易,尤其是如果你习惯了它,但最好使用其他更好地描述你放入其中的数据的方法。