Google 地图无法使用 XHTML Doctype(文档类型)

2024-05-11

到底为什么如果我们在 Google 地图上使用“Doctype”,总是有可能出现无法正确显示 Google 地图的问题?

在最近的一个案例中,这个“Doctype”只花了我 2 天的时间,却没有任何生产力。多么令人厌恶的案件?这次我得到了一位同事(Subhankar Bannerjee)的帮助,非常感谢他及时高效的帮助。他还提到了他曾经多次遇到过的同样的问题。

谁能告诉我为什么 Google 地图会出现这个 Doctype 问题?

任何帮助是极大的赞赏。

编辑(@Balus 的评论):-
我正在为 Mozilla FF 和 Google Chrome 浏览器使用 (X)HTML 1.0 Transitional Doctype。我还没有在 IE v6+ 中检查过这个 Google 地图,所以我无法对这些浏览器发表评论。


我也遇到了同样的问题谷歌地图 API v3 http://code.google.com/apis/maps/documentation/javascript/不久前,我必须说调试起来并不容易。

这里的问题是,如果您不在页面上使用 DOCTYPE,则页面将以怪异模式呈现。基本上,这允许使用样式而无需任何额外的 CSS 或 JavaScript。在这种情况下,您可以使用此位来加载地图:

<body onload="initialize()">
  <div id="map_canvas" style="width:100%; height:100%"></div>
</body> 

但是,使用 DOCTYPE 时,页面的呈现方式就像 DOCTYPE 所说的那样。如果没有任何额外的 CSS,设置如上所述的样式将无法工作,因为它使用百分比。该元素没有大小,因此您最终会 100% 什么都没有。因此,如果您使用 XHTML 1.0 Strict,即。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml/DTD/xhtml1-strict.dtd">

如果您使用像素而不是百分比,页面将按应有的方式呈现:

<body onload="initialize()">
  <div id="map_canvas" style="width:500px; height:400px"></div>
</body> 

您也可以在 CSS 中做到这一点。

所以你的选择在这里:

  1. 保留 DOCTYPE 并使用像素而不是百分比OR通过 CSS 指定宽度和高度。

  2. 删除 DOCTYPE 并使用百分比。不建议这样做,因为文档应始终说明应使用什么 DTD 来呈现。

您可以找到有关 Quirks 模式的更多信息:here. http://www.quirksmode.org/css/quirksmode.html还有一个表格显示了不同浏览器对缺少 DTD 的反应。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Google 地图无法使用 XHTML Doctype(文档类型) 的相关文章

随机推荐