質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.31%
CSS3

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

iframe

HTMLのタグ<iframe>です。<iframe>は、ドキュメント内に""inline frame""を作るHTML要素で、同じページでセパレートしているドキュメントが表示されるようにします。

Safari

SafariはAppleのウェブブラウザであり、Mac OS XとiOSのデフォルトのブラウザです。

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

Q&A

解決済

2回答

950閲覧

iframeで埋め込んだGooglemapがsafariで半分しか表示されません。

riiiiiiii

総合スコア1

CSS3

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

iframe

HTMLのタグ<iframe>です。<iframe>は、ドキュメント内に""inline frame""を作るHTML要素で、同じページでセパレートしているドキュメントが表示されるようにします。

Safari

SafariはAppleのウェブブラウザであり、Mac OS XとiOSのデフォルトのブラウザです。

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

0グッド

0クリップ

投稿2023/10/13 00:11

実現したいこと

iframeで埋め込んだGooglemapをiPhone(Safari)で画面幅いっぱいに表示したいです

発生している問題

Wordpressを用いてあるページにGooglemapをiframeで埋め込みました。スマホで画面幅いっぱいに埋め込んだマップを表示させようとしたのですが、実機(iPhone 12mini)で確認したところ下記画像のように左半分しか表示されません。右半分をタップしてみると反応しているので表示自体は画面幅いっぱいなのかもしれませんが見えません。

イメージ説明

該当のソースコード

html

1<div class="inner"> 2 <div class="map"> 3 <iframe src="googlemapの埋め込み用url" style="border:0;" allowfullscreen="" loading="lazy" referrerpolicy="no-referrer-when-downgrade"></iframe> 4 </div> 5</div>

css

1.inner { 2width: min(80%, 1200px); 3} 4 5.map { 6width: 100vw; 7height: 100vw; //画面幅いっぱいかつ正方形で表示するため 8margin: 0 calc(50% - 50vw) 20px; //画面幅いっぱに表示するため 9} 10

試したこと

CSSが問題なのかと思い、全て切って表示してみましたが変わらずでした。違うページで同じように画面幅いっぱいに表示した時には何も問題はなかったので原因がわかりません。
きちんと表示されているページと読み込んでいるjsファイルやプラグインなどに違いはありません。
wordpressを使用していますが、コード自体は直接phpファイルに記述しています。
どのようなことが原因として考えられるか教えていただければと思います。

また、初めて質問するので足りない情報などありましたら都度追加していきたいと思います。
どうぞよろしくお願いいたします。

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

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

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

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

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

guest

回答2

0

自己解決

このサイトを参考に解決できました。
iframeに「object-fit:cover;」を指定したのが原因のようでした。
別にしていた共通で読み込んでいたCSSに記述していたので、気づきませんでした。
逆に他のページではこれを指定した状態でも画面幅いっぱいに表示されていたのは何故なのか…とも思いますが、ひとまず解決できました。

投稿2023/10/13 08:15

riiiiiiii

総合スコア1

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

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

2ckD

2023/10/13 08:40

そこだけだと親要素に影響されて幅いっぱいに表示できないこともあると思うので、一応コメントしておきます。 解決方法1 レスポンシブにしたいなら 「@media (min-width:768px){ ... }」のように細かく.innnerの設定を書いていく必要があります。 解決方法2 それか、 <div class="innner"> <p></p> <iframe ...(略)> <p></p> </div> となっているのを <div class="innner"> <p></p> </div> <iframe ...(略)> <div class="innner"> <p></p> </div> のように分割していくのが現実的です。 解決方法3 「width:100vw」にして「position:absolute」か「position:relative」で座標をずらす方法も無くはないですが、 あとに続く要素もずらさないといけないので現実的ではないです。
riiiiiiii

2023/10/15 23:59

追加の解決方法まで教えていただきありがとうございます!色々試してみたいと思います。
guest

0

画面いっぱいにiframeを表示するなら
親要素の.innerを下記のようにします。

CSS

1.inner{ width:100%;}

.mapについては横幅100%且つ正方形ということなので

CSS

1.map{ 2 width:100%; 3 aspect-ratio:1/1 4}

とすればいいでしょう。

画像のように表示が左半分だけになったのは、
calc(50% - 50vw)によって左右にマイナスのmarginが設定されたためです。

投稿2023/10/13 04:24

2ckD

総合スコア305

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

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

riiiiiiii

2023/10/13 04:36

ありがとうございます。私の説明不足だったのですが、実際は.innerの中に他の要素もありスマホでのレイアウトやパソコンでのレイアウトを考慮した際に、親要素の.innerはこのままでこの親要素をはみ出す形で、.mapを画面幅いっぱいに表示させたかったのです。 また、私もcssがおかしいのかと思い、ご指摘いただいた「calc(50% - 50vw)」の部分を消したりしてみたのですが半分しか表示されず原因がわからない状態です。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.31%

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

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

質問する

関連した質問