html中map标签致使网站无法通过W3的XHTML验证6+

2009.12.15 | Tags: , , , , ,

前一段时间我在网站的头部加上了av格子广告,这里的av是avatar的意思,AV格子广告制作很简单,使用的就是map标签,具体的制作请看这里的最后一条,最近不知道怎么想的决定去w3做一下xhtml验证,结果发现一个问题:map标签基本不能通过w3的xhtml 1.1验证…
CSS中map属性致使无法通过W3的XHTML验证

这个方法很简便只要使用一张图片就可以了,代码大致如下:

<img src=”image_url” usemap=”#mapname” />
<map id=”mapname” name=”mapname”>….

然而让人觉得不可思议的是,竟然无法通过w3的xhtml 1.1的验证,其中无法通过给出的错误提示是这样的:

  • “character “#” is not allowed in the value of attribute “usemap””
  • “Attribute “name” exists, but can not be used for this element”

关于错误:

第二条的意思是说不能在<map></map>标签中使用name属性,就是说只能在map中用id了,对于IE、Opera来说不管是id还是name都无所谓,可能没有什么影响,因为他们可以认识id,但是对于Firefox、Google Chrome和Safari来说它们只认识name;这是w3的错还是Firefox、Chrome或Safari的错?

第一条的意思是说在不能对usemap使用“#”就是id,也就是只能在map标签中使用name属性,这是不是就是传说中的自相矛盾呢?这样一来,只有Google Chrome和Safari能够正常工作,IE、Firefox和Opera全都挂了,IE就不说了,Firefox、Opera可是都声称是按照标准来的,难道是w3错了?

如果你在usemap中使用了“#”也就是你用了id,那么对应还会有一个warning警告:

reference to non-existent ID “#map中的_id_名称”

最后,对于“map无法通过w3的xhtml 1.1验证”这个问题,如果谁有更好的办法请一定要分享一下,欢迎指正!


  1. 1 夏影残雪
    2009.12.15 / 18:28

    其实不明白,通过不了那个验证会有什么影响呢?

  2. 2 Dolly
    2009.12.16 / 16:49

    Super post, Need to mark it on Digg

  3. 3 Yusn
    2009.12.17 / 08:56

    @夏影残雪
    是没什么关系,就是想看看为什么过不了的

  4. 4 疾风
    2009.12.17 / 14:37

    我去试试我的~

  5. 5 Isaac
    2009.12.18 / 23:16

    就AV格子来说,CSS样式要怎么写?

  6. 6 猫哥
    2009.12.22 / 14:39

    我的是通不过的了,也不太在意。