大家好, 我尝试使用HTML 4.01 Strict中的图像映射,但w3c validoter给我错误的地图不支持, 我的代码看起来像这样
<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
答案 0 :(得分:1)
删除虚假的“/”字符(在“&gt;”之前)或更改您的文档以使用XHTML,允许(和必需)。
从技术上讲,问题在于,通过SGML规则,“/”终止标记,然后“&gt;”字符就是内容数据,它在map
元素内被重新包含。通过要求HTML 4.01验证,您要求应用SGML规则(即使浏览器不应用它们)。
验证器首先发出警告消息“NET-enabled start-tag需要SHORTTAG YES”,这无疑是神秘的,但它是了解真正发生的事情的线索。对于那些对理论感兴趣的人,完整的故事是Empty elements in SGML, HTML, XML, and XHTML。
答案 1 :(得分:1)
地图不能放在body标签内,而是放在div中(或错误信息中的其中一个替代方案),如下所示:
<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>
您还需要删除其他答案中之前建议的不必要的地图短标记。
答案 2 :(得分:0)
确定错误的原因是/
开头标记末尾存在<map>
,后面放置了结束</map>
标记。