【问题标题】:html table syntax validationhtml表格语法验证
【发布时间】:2016-09-25 05:54:19
【问题描述】:

这应该很容易。

我有一张这样的桌子:

<table>
<tr>
<td></td><td></td><td></td><td></td>
</tr>
<tr>
<td></td>
</tr>
</table>

我的 firefox 3 验证器说这是可接受的代码。这对我来说似乎是错误的,是否有任何可能的问题使表格行像这样不均匀?它也适用于 IE7。

【问题讨论】:

  • 我在后端用c#花了太多时间......我完全忘记了rowspan和colspan。

标签: html validation html-table


【解决方案1】:

您应该使用“rowspan”或“colspan”属性

<table>
  <tr>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
  </tr>
  <tr>
    <td colspan="3"></td>
  </tr>
</table>

【讨论】:

    【解决方案2】:

    表格行不需要具有相同数量的单元格。表格中的列数由单元格最多的行确定。

    您的第二个表格行将只有三个空白单元格(与空单元格不同)。

    【讨论】:

      【解决方案3】:

      如果您想使用不均匀数量的行/列,您需要应该使用rowspan and/or colspan attributes 来表明这一点。 例如:

      <table>
      <tr><td></td><td></td><td></td></tr>
      <tr><td colspan="3"></td></tr>
      </table>
      

      正如 guffa 在下面纠正我的那样,colspan 在技术上不是必需的,但明确说明你的意图永远不会有坏处。

      【讨论】:

      • 这是不正确的。表格行不需要具有相同数量的单元格。在示例中,正确答案是两个单元格都没有展开,空白单元格被添加到行尾以填充列。
      • 仍然不正确。 colspan 和 rowspan 属性用于跨单元格,如果您确实想要一个不均匀的表格,则不能使用它们。
      • 好吧,我指的是实际标签本身,而不是它们的呈现方式......
      【解决方案4】:

      嗯,那里没有语法错误,我真的不明白为什么你应该对这样的表持怀疑态度,只要你使用 td 元素的colspan 属性:

      <table>
      <tr>
      <td></td><td></td><td></td><td></td>
      </tr>
      <tr>
      <td colspan="3"></td>
      </tr>
      </table>
      

      希望对您有所帮助。

      【讨论】:

        【解决方案5】:

        从结构的角度来看,该代码很好。它是有效的 XHTML。比较一下:

        <orders>
           <order id='2009/1'>
             <item id='1'/><item id='2'><item id='3'/>
           </order>
           <order id='2009/2'>
             <item id='33'/>
           </order>
        </orders>
        

        它可能看起来很奇怪,因此建议使用 colspan。这样您就可以让单个 TD 填满该行,而不是其上方 TD 的宽度。

        【讨论】:

          猜你喜欢
          • 2020-05-08
          • 1970-01-01
          • 1970-01-01
          • 2021-08-07
          • 2014-09-03
          • 1970-01-01
          • 2017-01-22
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多