【问题标题】:Mark-up Validation标记验证
【发布时间】:2017-11-14 11:45:59
【问题描述】:

我正在尝试清理一些经过多次修改和修改的 HTML。

当我去验证页面时,我一直在说这个

“未完成的“表”的结束标签”

有点困惑,因为我相信我关闭了它?这是一个示例。

<table align="center" border="0" cellpadding="0" cellspacing="0" class="widthtable" width="650" />

我也试过了

<table align="center" border="0" cellpadding="0" cellspacing="0" class="widthtable" width="650"< </table>

提前致谢。

【问题讨论】:

  • 您应该知道alignwidthborder 是过时的HTML 属性。你的单元格属性也是如此
  • @MrLister 是的,我说过。

标签: html xhtml


【解决方案1】:

更仔细地查看错误消息。

它说它找到了结束标签(所以你已经关闭了它)但它还没有完成。

现在look at the DTD:

<!ELEMENT TABLE - -
     (CAPTION?, (COL*|COLGROUP*), THEAD?, TFOOT?, TBODY+)>

它的孩子是:

  • 可选的标题元素
  • 任意数量的 col 和 colgroup 元素
  • 可选的 thead 元素
  • 可选的 tfoot 元素
  • 至少一个 tbody 元素

您根本没有添加任何子元素,因此缺少必需的第一个 tbody 元素。这意味着当您为其编写结束标记时,该表还没有完成。


无论如何,一张没有孩子的桌子没有多大意义。

如果你没有数据,那么你就不能用表格的形式来表达那些数据。


注意:除了 class 属性之外,您使用的每个属性都在十年前被 CSS 取代。

【讨论】:

  • 正在编辑的 HTML 是作为模板购买的,已被广泛使用。我在编码方面有一点工作知识。这些表格似乎被用来定位页面?如果有帮助,我可以发布整个代码部分吗?
  • @HanleiPrice — 听起来应该完全删除表格并用 CSS 替换。
【解决方案2】:

您应该正确关闭表格标签。

<table .. **>**</table>


<table align="center" border="0" cellpadding="0" cellspacing="0" class="widthtable" width="650"> </table>

【讨论】:

  • 这只是问题中最后一个代码示例的副本。这似乎不足以成为答案。
  • 重新检查之前的代码......你还没有关闭表格的开始标签,在宽度之后。
  • 我不是韩雷普莱斯。这是一个很好的例子,说明为什么只有代码的答案质量很低。那场比赛中的差异点差异需要水平滚动来检测。如果这是问题所在,那么问题将是由拼写错误引起的,问题应该被关闭,而不是回答。但这不是问题,因为验证器不会针对该问题给出错误消息。
  • 感谢您提供此代码 sn-p,它可能会提供一些有限的即时帮助。一个正确的解释would greatly improve 其长期价值通过展示为什么这是解决问题的好方法,并将使其对未来有其他类似问题的读者更有用。请edit您的回答添加一些解释,包括您所做的假设。
  • 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接答案可能会失效。 - From Review
猜你喜欢
  • 2011-03-18
  • 2015-04-03
  • 2018-07-16
  • 2012-11-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多