【问题标题】:Stray end tag img杂散结束标签 img
【发布时间】:2014-07-29 18:33:12
【问题描述】:

通过 W3C 验证器服务验证标记时出现以下错误

杂散结束标签img

代码如下

<a title="text" href="url">
<img class="text" src="imgSrc" alt="Text"></img>
</a>

这是什么意思?我们如何避免它?

【问题讨论】:

  • 您应该始终指定哪个doctype 字符串(如果有)出现在页面的开头,因为这决定了验证模式。

标签: html user-interface markup w3c-validation


【解决方案1】:

如果您的文档与 XHTML 兼容,那么您必须使用 &lt;img src="image.jpg"/&gt; 关闭 img 标记,而不是使用 &lt;img&gt;...&lt;/img&gt;

如果您的文档符合 HTML5,则不需要 /&gt; 部分,只需使用 &lt;img src="image.jpg"&gt;

如果您想知道该文档应该符合 XHTML 或 HTML5 的含义 - 这是您 HTML 页面的第一行,即所谓的document type definition

&lt;!DOCTYPE HTML&gt; 用于 HTML5 和

&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt; 用于 XHTML 1.0 过渡

注意:&lt;!DOCTYPE&gt; 声明是强制性的(如果您希望您的页面使用 HTML 验证器进行验证)并且应该始终是 HTML 文档中的第一件事。

注意:虽然文档类型定义在技术上不是正常运行的网页所必需的,但最好始终将其包含在代码中。在学习构建网页时,请养成始终在代码中包含文档类型定义的习惯。

更多阅读:

【讨论】:

  • &lt;img ...&gt;...&lt;/img&gt; 是有效的 XHTML,只是出于兼容性原因不推荐用于网页。显然,当针对 XHTML 进行验证时,问题不会出现。
【解决方案2】:

基本上,这意味着您应该删除&lt;/img&gt;,因为&lt;img&gt; 标签不需要它:

<img class="text" src="imgSrc" alt="Text">

另外,仅出于参考目的,还有“关闭”标签的 XHTML 方式:

<img class="text" src="imgSrc" alt="Text" />

【讨论】:

    【解决方案3】:

    因此,“Stray end tag...”意味着结束标签在其出现的上下文中是不允许的。正如验证器的解释所说:“验证器找到了上述元素的结束标记,但该元素当前未打开。这通常是由在编辑期间删除的元素的剩余结束标记或隐式关闭的元素引起的(如果您有与不允许使用的元素相关的错误,几乎可以肯定是这种情况)。在后一种情况下,一旦您解决了原始问题,此错误就会消失。”

    根据症状(错误消息字符串),我们可以推断您在 HTML 序列化中针对 HTML5 进行验证。这意味着img 元素不允许有结束标记,因为开始标记也被视为关闭元素(“隐式关闭元素”)。

    因此,解决方案是删除&lt;/img&gt; 标记或在XHTML 序列化中针对HTML5 进行验证。后者不适用于网页,但如果您将 HTML 用于其他用途,则应通过引用以 XML 内容类型提供的资源的 URL 进行验证。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-28
      相关资源
      最近更新 更多