Vla*_*ban 5 css google-maps css3 google-maps-api-3 flexbox
我有一个简单的布局,身体占据了整个高度减去页脚的高度+标题的高度.这是通过flexbox模型实现的(http://philipwalton.github.io/solved-by-flexbox/demos/sticky-footer/)
<!DOCTYPE html>
<html>
<head>
<title>Simple Map</title>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no">
<meta charset="utf-8">
<style>
html, body {
height: 100%;
margin: 0;
padding: 0; /* to avoid scrollbars */
}
#wrapper {
display: flex; /* use the flex model */
min-height: 100%;
flex-direction: column; /* learn more: http://philipwalton.github.io/solved-by-flexbox/demos/sticky-footer/ */
}
#header {
background: yellow;
height: 100px; /* can be variable as well */
}
#body {
flex: 1;
border: 1px solid orange;
height: 100%;
}
#footer {
background: lime;
}
#map-canvas {
height: 100%;
}
</style>
<script src="https://maps.googleapis.com/maps/api/js?v=3.exp"></script>
<script>
var map;
function initialize() {
var mapOptions = {
zoom: 8,
center: new google.maps.LatLng(-34.397, 150.644)
};
map = new google.maps.Map(document.getElementById('map-canvas'),
mapOptions);
}
google.maps.event.addDomListener(window, 'load', initialize);
</script>
</head>
<body>
<div id="wrapper">
<div id="header">Title</div>
<div id="body">
<div id="map-canvas"></div>
</div>
<div id="footer">
Footer<br />
of<br />
variable<br />
height<br />
</div>
</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
我正面临谷歌地图的问题.我不能将它初始化为canvas div,因为(我认为这是原因)它没有定义的高度.
有没有办法让谷歌地图出现?
谢谢
Sal*_*n A 10
height: 100%没有按预期工作.您可以使用绝对定位来调整Google地图的大小:
var map;
function initialize() {
var mapOptions = {
zoom: 8,
center: new google.maps.LatLng(-34.397, 150.644)
};
map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);
}
google.maps.event.addDomListener(window, 'load', initialize);Run Code Online (Sandbox Code Playgroud)
html, body {
height: 100%;
margin: 0;
padding: 0;
}
#wrapper {
display: flex;
min-height: 100%;
flex-direction: column;
}
#header {
background: yellow;
height: 100px;
}
#body {
flex: 1;
background: orange;
position: relative;
}
#footer {
background: lime;
}
#map-canvas {
position: absolute;
left: 0;
right: 0;
top: 0;
bottom: 0;
}Run Code Online (Sandbox Code Playgroud)
<script src="https://maps.googleapis.com/maps/api/js?v=3.exp"></script>
<div id="wrapper">
<div id="header">Title</div>
<div id="body">
<div id="map-canvas"></div>
</div>
<div id="footer">
Footer<br/>of<br/>variable<br/>height
</div>
</div>Run Code Online (Sandbox Code Playgroud)
在创建地图之前,将高度设置#map-canvas为 JavaScript 中元素的高度。#body
var mapCanvas = document.getElementById('map-canvas');
mapCanvas.style.height = document.getElementById('body').clientHeight + 'px';
Run Code Online (Sandbox Code Playgroud)
jQuery 版本:
$('#map-canvas').height($('#body').height());
Run Code Online (Sandbox Code Playgroud)