通过W3C验证器服务验证标记时,会出现以下错误
迷路结束标签img
代码如下所示
<a title="text" href="url">
<img class="text" src="imgSrc" alt="Text"></img>
</a>
这意味着什么?我们怎么能避免呢?
答案 0 :(得分:12)
如果您的文档符合XHTML,则必须使用img
关闭<img src="image.jpg"/>
代码,而不是<img>...</img>
。
如果您的文档符合HTML5标准,那么您不需要/>
部分,只需使用<img src="image.jpg">
如果您想知道该文档应该符合XHTML或HTML5的含义 - 这是HTML页面的第一行,即所谓的document type definition
:
<!DOCTYPE HTML>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
适用于XHTML 1.0 Transitional
注意: <!DOCTYPE>
声明是必需的(如果您希望您的网页使用HTML验证程序验证),并且应该始终是HTML文档中的第一件事。
注意:虽然功能性网页在技术上不需要文档类型定义,但最好始终将其包含在代码中。在学习构建网页时,养成在代码中始终包含文档类型定义的习惯。
更多阅读:
答案 1 :(得分:3)
基本上,这意味着您应该移除</img>
,因为<img>
标记不需要它:
<img class="text" src="imgSrc" alt="Text">
或者,仅供参考,还有XHTML“关闭”标签的方式:
<img class="text" src="imgSrc" alt="Text" />
答案 2 :(得分:2)
因此,“Stray end tag ...”意味着在它出现的上下文中不允许使用结束标记。正如验证器的解释所说:“验证器找到了上述元素的结束标记,但该元素当前未打开。这通常是由编辑期间删除的元素中的剩余结束标记引起的,或者是由隐式关闭的元素引起的(如果您在不允许的情况下使用与正在使用的元素相关的错误,则几乎可以肯定这种情况)。在后一种情况下,一旦修复原始问题,此错误就会消失。“
根据症状(错误消息字符串),我们可以推断您在HTML序列化中验证HTML5。这意味着img
元素不允许使用结束标记,因为开始标记也被视为关闭元素(“隐式关闭元素”)。
因此,解决方案是删除</img>
标记或在XHTML序列化中对HTML5进行验证。后者对于网页不实用,但如果您使用HTML进行其他操作,则应通过URL进行验证,引用以XML内容类型提供的资源。