views:

96

answers:

2

I'm making a page using the Google Maps API v3, similar to Google's example. I want the map to fill up the entire viewport, but when I set its width and height to 100%, it doesn't appear. Setting at least one dimension in px, though, makes it work. I'm using Firefox 3.5.6 and Internet Explorer 8. Now I want to get the page to work, but I'm also curious as to why on Earth this bug occurs.

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"&gt;
<html lang="en" dir="ltr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="viewport" content="initial-scale=1.0, user-scalable=no">
<title>Map</title>
<style type="text/css">
html, body {
    margin: 0;
    padding: 0;
}
#map {
    width: 100%;
    /* Using % instead of px breaks the map, I don't know why. */
    height: 500px;
}
</style>
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"&gt;&lt;/script&gt;
<script type="text/javascript">
function initialize() {
    var myLatLon = new google.maps.LatLng(36, -111);
    var myOptions = {
        zoom: 7,
        center: myLatLon,
        mapTypeId: google.maps.MapTypeId.TERRAIN
    }
    var map = new google.maps.Map(document.getElementById("map"), myOptions);
}
</script>
</head>
<body onload="initialize();">
<div id="map">Loading...</div>
</body>
</html>
+1  A: 

Does this help?

Mike Williams
Yes, that was informative: "the div tries to be a percentage of the size of the <body>, but by default the <body> has an indeterminate height." It's fixed now. Thanks.
Remy
A: 

Set the html, body styles too - use 100% height and width and 0 margin. Also add overflow:hidden to them (Think that fixes an IE bug).

Shameless plug: Checkout www.pinnspot.com ... I did that there.

Sudhir Jonathan