这可能是某个问题的重复,但我无法提出生成它的关键字。
我正在使用Google Maps API V3并遵循https://developers.google.com/maps/documentation/javascript/tutorial提供的简单教程。一切都很好,除了IE9,它在IE9标准模式下呈现。问题是当地图加载到令人难以置信的简单ASP.NET表单页面上时,生成的HTML具有地图的div
容器,两次!这导致布局问题,因为如教程中所述:
请注意,地图的大小始终与其包含元素的大小相同,因此您必须始终明确设置大小。
因此,包含我的地图的div
必须设置为一定数量的像素或100%,与其DOM父级相同的值。这在FireFox和Chrome中很好用,HTML源代码大致结束:
<!DOCTYPE html>
<html>
<head>
...
</head>
<body class="no-layout"><form name="aspnetForm" method="post" action="TestPopup.aspx" id="aspnetForm">
<div>
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDw... />
</div>
<div class="map" />
</form></body>
</html>
但在IE9中,我们最终得到:
<!DOCTYPE html>
<html>
<head>
...
</head>
<body class="no-layout"><form name="aspnetForm" method="post" action="TestPopup.aspx" id="aspnetForm">
<div>
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDw..." />
</div>
<div class="map" />
</form>
<div class="map" />
</body>
</html>
此页面是问题的(工作)简化,但这是页面中的实际问题,因为地图类设置了宽度和高度。这个类的第二个div
具有相同的样式,推动内容下降。