🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Leaflet

Leafletは、Web上で地図を作成するためのJavaScriptライブラリ。人気のあるJavaScript地図ライブラリのうちの一つでオープンソースです。軽量でインタラクティブな地図を手軽に表示することができます。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

1回答

5316閲覧

leaflet Mapを画面一杯に表示

falcom_zx

総合スコア65

Leaflet

Leafletは、Web上で地図を作成するためのJavaScriptライブラリ。人気のあるJavaScript地図ライブラリのうちの一つでオープンソースです。軽量でインタラクティブな地図を手軽に表示することができます。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2021/01/27 15:07

編集2021/01/27 15:11

画面のタイトル名を表示した下に、leaflet画面を隙間無く表示したいと考えております。

現状

CSSで'style="height:100vh"'を指定したのですが、マップ下が画面からはみ出し、クレジット表記が見えなくなってしまいます。また、左上「+ボタン」で縮尺を変えた際に、マップが画面一杯となりタイトルが消えてしまいます。

現状の状態

行いたいこと

常にタイトルを表示し、ブラウザサイズを変えても、タイトル下にマップが常に画面一杯となり、マップ下にはクレジット表記が常にされている状態にしたいと考えております。

常にタイトルやクレジットを表記

HTMLCSS

1<!DOCTYPE html> 2<html lang="ja"> 3 <head> 4 <meta charset="UTF-8"> 5 6 <title>Leaflet Map</title> 7 8 <!-- leaflet --> 9 <link rel="stylesheet" href="https://unpkg.com/leaflet@1.7.1/dist/leaflet.css" 10 integrity="sha512-xodZBNTC5n17Xt2atTPuE1HxjVMSvLVW9ocqUKLsCC5CXdbqCmblAshOMAS6/keqq/sMZMZ19scR4PsZChSR7A=="crossorigin=""/> 11 <script src="https://unpkg.com/leaflet@1.7.1/dist/leaflet.js" 12 integrity="sha512-XQoYMqMTK8LvdxXYG3nZ448hOEQiglfqkJs1NOQV44cWnUrBc8PkAOcXy20w0vlaXaVUearIOBhiXZ5V3ynxwA==" 13 crossorigin=""></script> 14 </head> 15 16 <body> 17 <div id="app"> 18 <h1>title</h1> 19 <div id="map" style="height:100vh"></div> 20 </div> 21 22 <script> 23 var map = L.map('map').setView([51.505, -0.09], 13); 24 25 L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', { 26 attribution: '&copy; <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors' 27 }).addTo(map); 28 </script> 29 30 </body> 31</html>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

h1で表示しているテキスト分の高さを考慮していないから、そうなっています。

リサイズする処理を設けて、innerHeightからh1要素の高さ分を引いたのを与えるようにすればよいかと。

どこの記事を参考に書いたか忘れましたが、ウィンドウのリサイズイベントを捉えて
マップ表示している#mainのサイズ変更を仕込んでいました。
ネット検索すると、地図の親コンテナに対してリサイズを捉えて実装するってのを見かけますね。

javascript

1 function size() { 2 // リサイズ時の処理 3 var h = $(window).height() - $('#header-container').height() - 2; 4 $('#main').css('height', h); 5 var w = $(window).width() - $('#layer-menu').width(); 6 $('#main').css('width', w); 7 } 8 size(); 9 $(window).on("resize", function() { size(); });

投稿2021/01/28 00:39

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

falcom_zx

2021/02/01 11:51

CSSだけでは対応できないのですね。 勉強になりました。ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問