您好我正在开发一个项目,该项目需要特定的全屏谷歌地图才能位于页眉和页脚之间。我确定答案很简单,但我想我还是会问。该项目包含一个表单,用户可以在填写地址后删除标记等,不确定是否有任何自定义可能会受到干扰......
过去我使用谷歌地图API时,通常只是将css高度更改为100%,但出于某种原因而不是改变大小,它会完全删除地图。
#map {
height:500px;
width:1200px;
}
这是代码。
var map;
var marker;
var Longitude = -1.8822221000000354;
var Latitude = 50.72569620000001;
var zoom = 20;
var bounds = new google.maps.LatLngBounds();
var markers;
var new_marker;
var C;
var popupbubblepath = <%= this.popupbubble.ToString() %>;
var infowindow = new google.maps.InfoWindow();
var ib;
function LoadMap() {
// Create an array of styles.
var styles = [
{
stylers: [
{ saturation: -100 }, { lightness: -100 }
]
},{
featureType: "all",
elementType: "all",
}
];
// Create a new StyledMapType object, passing it the array of styles,
// as well as the name to be displayed on the map type control.
//var styledMap = new google.maps.StyledMapType(styles, {name: "Styled Map"});
var myOptions = {
zoom: zoom,
center: new google.maps.LatLng(Latitude, Longitude),
mapTypeControl: false,
scaleControl: false,
streetViewControl: true,
overviewMapControl: false,
zoomControl: true,
mapTypeControlOptions: {
style:google.maps.MapTypeControlStyle.DROPDOWN_MENU,
position:google.maps.ControlPosition.LEFT_BOTTOM
},
zoomControlOptions: {
style: google.maps.ZoomControlStyle.SMALL
},
panControl: false,
mapTypeId: google.maps.MapTypeId.ROADMAP
}
map = new google.maps.Map(document.getElementById("map"), myOptions);
答案 0 :(得分:5)
使用绝对定位设置顶部,左侧,底部,右侧的vaules,看看http://alistapart.com/article/conflictingabsolutepositions。
#map-canvas{
position: absolute;
top: 100px;
left: 0;
bottom: 100px;
right: 0;
}
现在将窗口拖到您心中的内容,并观看您的地图保持全尺寸。做响应式设计时也很棒。
答案 1 :(得分:3)
问题在于您的HTML不是使用您的JavaScript。尝试以下
<div id='wrapper'>
<div id='header'>header stuff<div>
<div id='map-canvas'></div>
<div id='footer'>footer stuff<div>
</div>
添加以下css
html, body, #wrapper{
height: 100%;
width: 100%;
}
#header{
height: 100px; //or whatever. Note px not %.
width: 100%;
}
#footer{
height: 100px; //or whatever. Note px not %.
width: 100%;
}
#map-canvas{
height: 100%;
width: 100%;
margin-top: 100px;
margin-bottom: 100px;
}
我还没有机会对此进行测试,但这可以让您了解需要做些什么。
答案 2 :(得分:3)
Google Maps API文档explain this effect rather neatly:
请注意,在quirks模式下工作的某些CSS在标准模式下无效。具体而言,所有基于百分比的大小都必须从父块元素继承,如果这些祖先中的任何一个未能指定大小,则假定它们的大小为0 x 0像素。
答案 3 :(得分:0)
我认为问题不在于地图,而在于包含div。如果将div的高度设置为100%,请确保所有包含div的高度都已定义。您可以通过在div周围放置边框来判断这是否是问题,您可能会看到高度是问题。
如果你可以让我们玩它,会更容易解决。
答案 4 :(得分:0)
如果您希望空白div
占据所有屏幕的高度,则必须定义min-height
值,如下所示:
html, body {
height: 100%;
}
#map {
min-height: 100%;
}
但同样,这与“google-maps-api-3”......
无关