2012-02-28 56 views
0

嗨大家好, 我尝试使用HTML 4.01严格的图像映射,但W3C validoter给我的地图不支持的错误, 我的代码看起来像这w3c验证器给图像映射的HTML 4.01严格

<img id="link_image" src="images/livechat.png" usemap="#Map" alt="The chat link" /> 
<map name="Map" id="Map" class="newWindow link-chat" ><area shape="rect" coords="79,3,521,67" href="#" alt="The chat link mapping" /></map> 

提供以下错误,

Line 57, Column 54: document type does not allow element "MAP" here; missing one of "P", "H1", "H2", "H3", "H4", "H5", "H6", "PRE", "DIV", "ADDRESS" start-tag 
+1

W3C验证服务不会给出“地图不支持”的错误。如果您引用了您收到的实际错误消息,这可能会有所帮助。 – Quentin 2012-02-28 10:43:29

+0

我在那里添加错误消息 – user696734 2012-02-28 10:51:06

回答

1

地图不能放在body标签里面,把它格,而不是(或错误消息的替代品之一)内,像这样:

<div> 
    <img id="link_image" src="images/livechat.png" usemap="#Map" alt="The chat link"/
    <map name="Map" id="Map" class="newWindow link-chat" ><area shape="rect" coords="79,3,521,67" href="#" alt="The chat link mapping"></map> 
</div> 

您还需要删除不必要的映射短标签正如之前在其他答案中所建议的。

+0

谢谢你,真的为我做了魔术 – user696734 2012-02-28 11:18:12

1

取出假“/”字符(“>”)之前或更改文档使用XHTML,在那里他们被允许(和需要)。

从技术上讲,问题在于,通过SGML规则,“/”终止标签,而“>”字符则是内容数据,该数据在map元素内是不透明的。并且通过询问HTML 4.01验证,您需要申请SGML规则(即使浏览器不应用它们)。

验证器首先发出警告信息“NET启用启动标签需要SHORTTAG是”,这固然神秘,但它是一个线索,以了解到底发生了什么。完整的故事,对那些对这个理论感兴趣的人,在Empty elements in SGML, HTML, XML, and XHTML

0

肯定的错误是由于/<map>开始标记的末尾存在,并且标记后面放置了标记</map>