У меня была такая же проблема с Google Maps API v3 некоторое время назад, и я должен сказать, что отладку было нелегко.
Дело в том, что если вы этого не сделаетеиспользуйте 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.
Итак, ваши варианты здесь:
Оставьте DOCTYPE и используйте пиксели вместо процентов ИЛИ укажите ширину и высоту с помощью CSS.
Удалите DOCTYPE и используйте проценты.Это не рекомендуется, так как в документе всегда должно указываться, с каким DTD оно должно отображаться.
Подробнее о режиме Quirks можно узнать из здесь. Также естьтаблица, показывающая, как разные браузеры реагируют на отсутствие DTD.