2013-05-14 21 views
24

在我的應用我正在格爲如何使地圖的單張地圖高度可變

<div id="map" style="height: 610px; width:100%"></div> 

而是爲了讓我的地圖響應我想讓高度也是100%,如果我做height: 100%那麼它是不是加工。

我怎樣才能讓高度也像寬度一樣變化,以便地圖可以在任何設備上正確顯示。

演示:http://jsfiddle.net/CcYp6/

如果你改變高度&寬度圖,那麼你不會得到地圖。

+0

提供JSfiddle代碼以及你想要的截圖。 – Nitesh 2013-05-14 12:44:14

+0

@NathanLee請看上面的演示 – 2013-05-14 13:03:36

回答

21

您需要的父元素設置爲height: 100%;第一

html, body { 
    height: 100%; 
} 

Demo

Demo (如無父高度定義這將無法正常工作)

解釋:爲什麼你需要要做到這一點?所以當你在%中指定一個元素的高度時,出現的第一個問題是:100%是什麼? 默認情況下,一個div有0px高度,所以對於100%一個div是行不通的,但設置父元素height100%;會工作。

+0

你能解釋一下嗎? – underscore 2013-05-14 12:44:51

+0

它可能在正常情況下工作。但是,因爲我的div包含地圖它想要工作。 – 2013-05-14 12:45:48

+0

@vaibhavshah你在說什麼地圖? – 2013-05-14 12:49:49

21

您必須使用JavaScript設置div大小。

$("#map").height($(window).height()).width($(window).width()); 
map.invalidateSize(); 

你可以找到一個完整的例子here

+0

如何在$(「#map」)中左側添加另一個屬性作爲填充。 。.height($(窗口).height())寬度($(窗口).WIDTH()); – 2014-07-01 07:09:10

+0

@vaibhav沙阿,你可以接受這個答案。謝謝。 – northtree 2017-12-29 01:23:51

5

使用高度=「100vh」適用於較新的瀏覽器。但沒關係。