w3c验证器为HTML 4.01严格的图像映射提供错误

时间:2012-02-28 10:39:09

标签: html css

大家好,             我尝试使用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

3 个答案:

答案 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>标记。