首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mapbox-gl高度100%

Mapbox-gl高度100%
EN

Stack Overflow用户
提问于 2019-07-23 14:46:40
回答 9查看 20.1K关注 0票数 19

Mapbox不适合它的容器。为什么不呢?

这是呈现的html:

代码语言:javascript
复制
<div class="map mapboxgl-map" id="mapBox">
  <div class="mapboxgl-canvas-container">
    <canvas class="mapboxgl-canvas" style="position: absolute; width: 1920px; height: 277px;" tabindex="0" aria-label="Map" width="1920" height="277">
    </canvas>
  </div>
</div>

我想,这些277px是默认的。

这是js:

代码语言:javascript
复制
mapboxgl.accessToken = 'blabla';
  var map = new mapboxgl.Map({
    container: 'mapBox',
    style: 'mapbox://styles/mapbox/streets-v11',
    center: [-77.04, 38.907],
    zoom: 11.15
  });

这是scss:

代码语言:javascript
复制
.map {
  grid-column: 1/-1;
  height: 100%;
  position: relative;
  canvas, .mapboxgl-canvas {
    height: 100%;
  }
}

如果我把这个非常著名的!important添加到height: 100%;中,那么它可以工作,但是地图是拉伸的。

我要怎么做?

EN

回答 9

Stack Overflow用户

回答已采纳

发布于 2019-07-29 07:21:04

我找到了诀窍。

只需加上

代码语言:javascript
复制
map.on('load', function () {
    map.resize();
});

到js,以便映射将大小调整到它的容器

票数 39
EN

Stack Overflow用户

发布于 2020-01-15 04:16:12

经过数小时的努力寻找解决方案和尝试解决方案,我终于明白了如何使Mapbox适合它的容器。为了使mapbox适合它的容器,而不需要设置绝对高度,它必须是父div的第一个直接子级。Mapbox不能是第二个、第三个或第四个孩子等等,为什么?我的猜测是,mapbox-gl.css与定制的css规则相冲突。

--这每一次都有效:

代码语言:javascript
复制
<section class="map_box_container">
    <!--MAP-->
  <div id='map'></div>
</section>

--这从来不起作用:

代码语言:javascript
复制
   <section class="map_box_container">
<div class="second_child">
        <!--MAP-->
      <div id='map'></div>
</div>
    </section>

CSS

代码语言:javascript
复制
.map_box_container{
  position: relative;
  height: 100% !important;
  width: 100% !important;
}

  #map {
    position: absolute;
    top: 0;
    bottom: 0;
    width: 100%;
  }

更新2021

我在一个新项目中使用mapbox,我的理解是mapbox不需要它的父容器有任何css来工作。

代码语言:javascript
复制
<section class="map_box_container">
<!--MAP-->
<div id='map'></div>
</section>

CSS

代码语言:javascript
复制
#map {
position: absolute;
top: 0;
bottom: 0;
width: 100%;
}
票数 6
EN

Stack Overflow用户

发布于 2019-07-30 22:27:45

将此添加到css中

代码语言:javascript
复制
.mapboxgl-map {
    position: absolute;
    top: 0;
    bottom: 0;
    width: 100%;
    }

{ position: relative }给它的父div

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57166761

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档