大屏幕分辨率的Ol3 + boostrap-grid:容器流体&身高:100%=> Firefox上的初始垂直滚动条

时间:2015-06-15 15:29:41

标签: twitter-bootstrap-3 openlayers-3

我正在努力使用Bootstrap和OL3进行响应式布局。

使用http://openlayers.org/en/v3.6.0/examples/simple.html

中的简单示例

当我在 Firefox (38.05,分辨率为1366x76)上打开此示例为“独立”(没有openlayers.org-layout等)时,总会有一张太大的地图(垂直滚动条) - 它超过某个窗口宽度(1200px)的窗口高度。

查看截图: imgur.com/OJV5zxQ

当我使用“容器”而不是“容器流体”类时,它正常工作。但我想要一个响应式布局,其中地图使用可用的最大空间。 关于这个问题,我找不到任何关于boostrap.css(max-width / min-width:1200px)的内容。

我想这与生成画布宽度/高度的ol.js有关。但我不确定。

<div class="container-fluid">
 <div class="row">
  <div class="col-lg-12 col-md-9 col-sm-9">
    <div id="map">
    </div>
     <div id="info">
     </div>
  </div>
 </div>
</div>

http://jsfiddle.net/b335z4n6/ 在jsfiddle它可能不起作用(我认为它的map.updateSize()相关),所以只需将简单示例的代码复制到html文件中并打开它。

<!DOCTYPE html>
<html>
<head>
<title>Simple example</title>
<script src="https://code.jquery.com/jquery-1.11.2.min.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css">
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/ol3/3.6.0/ol.css" type="text/css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/ol3/3.6.0/ol.js"></script>
<style>
* { margin:0; padding:0; } /* to remove the top and left whitespace */
html { height: 100%; }

body {
    width: 100%;
    height: 100%;
    margin: 0px;
    padding: 0px;
}

.container-fluid {
    max-width: 99%;
    max-height: 99%; //this removes the "initial" scrollbar on Chromium but not on FF
    }
</style>
<style>
@media (min-width: 1200px) {
    .container-fluid {
        border:1px solid red;
    }
}
</style>
</head>
<body>
<div class="container-fluid">
<div class="row-fluid">
  <div class="span12">
    <div id="map" class="map"></div>
  </div>
</div>

</div>
<script>
var map = new ol.Map({
  layers: [
    new ol.layer.Tile({
      source: new ol.source.OSM()
    })
  ],
  controls: ol.control.defaults({
    attributionOptions: /** @type {olx.control.AttributionOptions} */ ({
      collapsible: false
    })
  }),
  target: 'map',
  view: new ol.View({
    center: [0, 0],
    zoom: 2
  })
});

</script>
</body>
</html>

1 个答案:

答案 0 :(得分:0)

上述问题仅在OL-Container(此处为#map)没有给定固定高度时出现,例如:

<div id="map" style="height:500px;"></div>

目前我将使用jquery $(window).height()函数并将值放入#map-container。

似乎&#34;修复&#34;它 - 到目前为止不是最好的解决方案......