Bootstrap 3.0和Google映射javascript API V3样式

Bob*_*dan 11 google-maps-api-3 twitter-bootstrap-3

我正在尝试将google maps javascript API v3实现到Bootstrap 3.0网站,该网站正在利用bootstrap 3.0"carousel"基本主题.

问题是<div id="map-canvas"></div>如果我试图将它包含在任何其他div或bootstrap 3样式内部(例如内部),则不会在我的页面上呈现<div class="col-xs-6"></div>.但是,只要它不包含在另一个div中,它就会呈现.

我找到了一个推荐此修复的注释,该注释指示使用以下代码将google-map-canvas类添加到map-canvas div:

.google-map-canvas,
.google-map-canvas * { .box-sizing(content-box); }
Run Code Online (Sandbox Code Playgroud)

我已将此代码添加到bootstrap.min.css然后将div更改为<div class="google-map-canvas" id="map-canvas"></div>但如果我将其包含在bootstrap 3样式所需的任何其他div中,则仍然无法呈现.

我需要将此地图放在我的联系页面的右半部分,左边的联系表格包含该页面.任何关于如何解决这个问题的建议表示赞赏.

以下是我的测试代码:

JAVASCRIPT(在"base.html"上):

{% if on_contactpage %}
   <style type="text/css">
          html { height: 100% }
          body { height: 100%; margin: 0; padding: 0 }
          #map-canvas { height: 100% }
   </style>
     <script type="text/javascript"
          src="https://maps.googleapis.com/maps/api/js?key=MY_API_KEY&sensor=false">
     </script>
     <script type="text/javascript">
          function initialize() {
            var mapOptions = {
              center: new google.maps.LatLng(-34.397, 150.644),
              zoom: 8,
              mapTypeId: google.maps.MapTypeId.ROADMAP
            };
            var map = new google.maps.Map(document.getElementById("map-canvas"),
                mapOptions);
          }
          google.maps.event.addDomListener(window, 'load', initialize);
     </script>
{% endif %}
Run Code Online (Sandbox Code Playgroud)

HTML:

<div class="row">

    <div class="col-xs-6">

        <h2> contact form goes here</h2>

    </div>

      <div class="col-xs-6">

            <div class="google-map-canvas" id="map-canvas">
            </div>

        <div class="col-xs-6">
            <h2>Hong Kong</h2>
            <address>
                <strong>HK Business Address</strong><br>
                100 Business Address<br>
                Kowloon<br>
                Hong Kong<br>
                Hong Kong<br>
                Zip Code N/A<br>
                <abbr title="Phone">P:</abbr> 01234 567 890
            </address>
        </div>

        <div class="col-xs-6">


          <h2>Shenzhen, P.R.C.</h2>
            <address>
                <strong>SZ Business Address</strong><br>
                100 Business Address<br>
                Futian District<br>
                <br>
                Shenzhen, Guangdong<br>
                518000<br>
                <abbr title="Phone">P:</abbr> 01234 567 890
            </address>
        </div>
      </div>

</div>
Run Code Online (Sandbox Code Playgroud)

Zim*_*Zim 29

由于map-canvas它包含在其他几个容器(html,body,row,col-xs-6)中,你需要设置它的高度(以像素为单位).

#map-canvas {
    width:100%;
    height:500px;
}
Run Code Online (Sandbox Code Playgroud)

..或将所有map-canvas容器设置为height:100%..

html, body, .row, .col-xs-6 { height: 100% }
Run Code Online (Sandbox Code Playgroud)

您可以在.row中指定包含该ID的ID map-canvas,然后将其用于CSS特性...

html, body, #myrowid, #myrowid .col-xs-6 { height: 100% }
Run Code Online (Sandbox Code Playgroud)

以下是Bootply的一个工作示例:http://bootply.com/77513

  • 修改高度以指定px最终是最适合我的修复.谢谢! (5认同)