カテゴリ: HTML 更新日: 2026/08/22

HTML iframeをレスポンシブ対応する方法|比率固定でスマホでも見やすく

HTML iframeをレスポンシブ対応する方法(比率固定)
HTML iframeをレスポンシブ対応する方法(比率固定)

先生と生徒の会話形式で理解しよう

生徒

「先生、iframeって動画や地図を埋め込むタグですよね?でもスマホで見ると横幅が合わなくて困ります。」

先生

「そうですね。iframeはデフォルトだと幅と高さが固定されているので、スマホなど画面サイズが小さい場合に表示が崩れることがあります。」

生徒

「画面サイズに合わせて自動でサイズを変える方法はありますか?」

先生

「ありますよ。CSSを使ってiframeのアスペクト比(比率)を固定しつつ、横幅100%にすることでレスポンシブ対応ができます。」

1. iframeの基本と問題点

1. iframeの基本と問題点
1. iframeの基本と問題点

HTMLのiframeは、他のWebページやYouTube動画、Googleマップなどを自分のページ内に埋め込むためのタグです。使い方は簡単ですが、幅や高さを固定してしまうとスマートフォンやタブレットなど小さい画面で表示が崩れることがあります。例えば幅600px、高さ400pxで設定していると、スマホ画面では画面からはみ出してしまいます。

2. レスポンシブ対応の基本概念

2. レスポンシブ対応の基本概念
2. レスポンシブ対応の基本概念

レスポンシブ対応とは、画面サイズに応じてコンテンツの幅や高さが自動で調整される仕組みです。iframeの場合は、CSSで親要素の幅を100%に設定し、アスペクト比を保つことで縦横比が崩れずに表示できます。アスペクト比とは、横幅と高さの比率のことです。YouTube動画は通常16:9の比率です。

3. CSSでiframeを比率固定する方法

3. CSSでiframeを比率固定する方法
3. CSSでiframeを比率固定する方法

iframeをレスポンシブにするには、まず親要素を作り、positionとpaddingで比率を固定します。例えば16:9の場合は以下のように書きます。


<div class="iframe-container" style="position:relative; width:100%; padding-bottom:56.25%;">
    <iframe src="https://www.youtube.com/embed/dQw4w9WgXcQ" style="position:absolute; top:0; left:0; width:100%; height:100%;" frameborder="0" allowfullscreen></iframe>
</div>
    
ブラウザ表示

4. padding-bottomで比率を決める理由

4. padding-bottomで比率を決める理由
4. padding-bottomで比率を決める理由

CSSのpadding-bottomにパーセンテージを使うと、親要素の幅に応じて高さが自動で計算されます。16:9の比率の場合は9÷16=0.5625なので、padding-bottom:56.25%と設定します。こうすることで、どんな画面でも横幅100%で比率を保ったまま表示されます。


<div class="iframe-container" style="position:relative; width:100%; padding-bottom:75%;">
    <iframe src="https://www.google.com/maps/embed?pb=..." style="position:absolute; top:0; left:0; width:100%; height:100%;" frameborder="0" allowfullscreen></iframe>
</div>
    
ブラウザ表示

5. Bootstrapを使った簡単レスポンシブiframe

5. Bootstrapを使った簡単レスポンシブiframe
5. Bootstrapを使った簡単レスポンシブiframe

Bootstrap5にはレスポンシブiframe用のユーティリティクラスが用意されています。ratioクラスを使うと簡単に比率固定が可能です。


<div class="ratio ratio-16x9">
    <iframe src="https://www.youtube.com/embed/dQw4w9WgXcQ" title="YouTube video" allowfullscreen></iframe>
</div>
    
ブラウザ表示

6. iframeのアクセシビリティとSEO対策

6. iframeのアクセシビリティとSEO対策
6. iframeのアクセシビリティとSEO対策

iframeにはtitle属性を必ず付けましょう。title属性は視覚障害のある方が読み上げソフトで内容を理解するために必要です。また、iframe内のコンテンツは検索エンジンに直接読み込まれないため、SEOの観点ではiframe周辺のテキストで内容を補足することが重要です。例えば動画の説明や関連情報をテキストで書くと検索結果に反映されやすくなります。


<div class="ratio ratio-16x9">
    <iframe src="https://www.youtube.com/embed/dQw4w9WgXcQ" title="説明動画" allowfullscreen></iframe>
</div>
<p>この動画はHTMLのiframeレスポンシブ対応について解説しています。スマホでも見やすい16:9比率で表示されます。</p>
    
ブラウザ表示

7. 実践!複数のiframeをレスポンシブに並べる

7. 実践!複数のiframeをレスポンシブに並べる
7. 実践!複数のiframeをレスポンシブに並べる

複数の動画や地図を並べたい場合も、親要素にレスポンシブの設定をしておけば簡単です。Bootstrapのグリッドと組み合わせると便利です。


<div class="row">
    <div class="col-md-6 mb-3">
        <div class="ratio ratio-16x9">
            <iframe src="https://www.youtube.com/embed/dQw4w9WgXcQ" title="動画1" allowfullscreen></iframe>
        </div>
    </div>
    <div class="col-md-6 mb-3">
        <div class="ratio ratio-16x9">
            <iframe src="https://www.youtube.com/embed/9bZkp7q19f0" title="動画2" allowfullscreen></iframe>
        </div>
    </div>
</div>
    
ブラウザ表示

8. まとめるとレスポンシブiframeのポイント

8. まとめるとレスポンシブiframeのポイント
8. まとめるとレスポンシブiframeのポイント

iframeをスマホやタブレットでも見やすくするには、以下のポイントを押さえましょう。親要素で幅を100%にしてpadding-bottomで比率を固定する。Bootstrapならratioクラスを使う。title属性を付けてアクセシビリティを意識する。周辺テキストで内容を補足し、SEOにも配慮する。これで安全かつ検索に強いレスポンシブiframeが作れます。

まとめ

まとめ
まとめ

今回の記事では、HTMLのiframeをスマホやタブレットでも快適に表示できるようにレスポンシブ対応する方法について詳しく解説しました。iframeはWebページに外部コンテンツを埋め込む便利なタグですが、デフォルトでは幅や高さが固定されているため、小さい画面での表示に問題が生じやすいです。そのため、親要素の幅を100%に設定し、padding-bottomを使ってアスペクト比を固定する方法を理解することが重要です。例えばYouTube動画でよく使われる16:9の比率であれば、padding-bottom:56.25%と設定することで、横幅に応じて高さが自動調整され、どのデバイスでも適切に表示されます。

また、Bootstrapのratioクラスを活用することで、CSSを個別に書かなくても簡単にレスポンシブiframeを実装できます。複数のiframeを並べる場合でも、Bootstrapのグリッドと組み合わせれば整列が容易です。さらに、iframeにtitle属性を付与することでアクセシビリティが向上し、画面読み上げソフトを使用するユーザーにも配慮できます。SEOの観点では、iframe内のコンテンツは検索エンジンが直接認識できないため、周囲に説明文や関連情報をテキストで記載することが効果的です。

まとめると、レスポンシブiframeを作る際のポイントは以下の通りです。

  • 親要素の幅を100%に設定し、padding-bottomで縦横比を固定する
  • Bootstrapのratioクラスを活用して簡単にレスポンシブ化する
  • iframeにtitle属性を付与してアクセシビリティに配慮する
  • 周囲のテキストで内容を補足し、SEOに配慮する
  • 複数iframeはグリッドと組み合わせて整列させる

実際にコードを使って試してみると、画面サイズが変わっても動画や地図が見やすくなることを実感できます。レスポンシブ対応は初心者でも少しのCSS理解で可能ですので、ぜひ実践してWebページの利便性を向上させましょう。

サンプルプログラム:レスポンシブiframe(16:9比率)


<div class="iframe-container" style="position:relative; width:100%; padding-bottom:56.25%;"> <iframe src="https://www.youtube.com/embed/dQw4w9WgXcQ" style="position:absolute; top:0; left:0; width:100%; height:100%;" frameborder="0" title="サンプル動画" allowfullscreen></iframe> </div> 
ブラウザ表示
先生と生徒の振り返り会話

生徒

「先生、今回のiframeレスポンシブ化で一番大事なポイントは何でしょうか?」

先生

「まず、親要素の幅を100%にして、padding-bottomで縦横比を固定することです。これで画面サイズに関わらず比率を保てます。」

生徒

「Bootstrapのratioクラスも使えるんですね。コードがシンプルになって便利です。」

先生

「その通りです。さらにtitle属性を付ければアクセシビリティも確保でき、周囲にテキストで説明を書けばSEOにも配慮できます。」

生徒

「複数のiframeを並べる場合も、グリッドを使えば整列しやすいですね。」

先生

「はい、これでスマホでもタブレットでも、見やすいWebページを作ることができます。実際に手を動かして試すことが理解への近道です。」

2026年最新 スキルアップ・実践セミナー

「意味」がわかればWebは楽しい!現役エンジニアが教える、挫折しないためのHTML構造化入門

「Webの仕組み」を正しく操る。HTML5でプロフェッショナルな情報設計の第一歩を。

本講座では、単なるタグの暗記ではなく、「検索エンジンやAIに正しく伝わる情報の構造化」という本質的な技術を学びます。モダンWebの土台であるHTML5を通じて、将来的にWebデザイナーやフロントエンドエンジニアを目指すための「稼げる基礎力」を最短距離で身につけます。

具体的なワークショップ内容と環境

【つくるもの】
自己紹介やポートフォリオの土台となる「構造化されたWebページ」を作成します。見出し、段落、リスト、リンク、画像配置など、商用サイトでも必ず使われる「セマンティックなマークアップ」をゼロから体験してください。

【開発環境】
世界中のプロが愛用するVisual Studio Code (VS Code)を使用します。Emmet(高速入力機能)の設定から、HTMLの文法ミスを自動チェックする拡張機能まで、現場基準の効率的な環境を一緒に構築します。

この60分で得られる3つの武器

1. SEOに強い「意味のある」マークアップ

Googleから高く評価されるタグの選び方を理解し、検索上位を狙えるサイト構造の作り方を学びます。

2. VS Codeを使いこなす爆速コーディング

プロが使うショートカットや自動補完機能を習得し、タイピングの手間を最小限にする技術を体得します。

3. 2026年基準のWebアクセシビリティ

画像への代替テキストや適切な階層構造など、誰にとっても使いやすい「優しいWeb」の作り方を伝授します。

※本講座は、将来的にWebデザイナー、コーダー、フロントエンドエンジニアを目指す未経験者のためのエントリー講座です。「モクモク」独自のマンツーマン形式により、コードを1行書くたびに生まれる疑問をその場で解決します。

「意味」がわかればWebは楽しい!現役エンジニアが教える、挫折しないためのHTML構造化入門

現役エンジニアが教えるHTML入門

各回少人数・マンツーマン形式で徹底サポート

このセミナーの詳細・お申し込みはこちら
カテゴリの一覧へ
新着記事
New1
CSS
CSSでdisplayの違いを図解で理解!block・inline・inline-blockの使い方
New2
CSS
CSSのwidthとheightの基本!初心者でもわかる単位の使い分け
New3
CSS
z-indexによるバグを防ぐためのデバッグ方法完全ガイド!初心者向け解決テクニック
New4
HTML
HTML data-*属性とJavaScript連携を完全解説!datasetでカスタムデータを取得する方法
人気記事
No.1
Java&Spring記事人気No1
HTML
HTML inputタグとは?フォーム入力を担う基本要素を初心者向けに完全解説
No.2
Java&Spring記事人気No2
HTML
HTML formのaction URL設計を完全解説|送信先の考え方を初心者でも理解
No.3
Java&Spring記事人気No3
CSS
CSSで要素のサイズを自動調整!autoとfit-contentの使い方
No.4
Java&Spring記事人気No4
CSS
レイヤー管理に便利なCSS変数とSCSS変数の活用法完全ガイド!初心者向け解説
No.5
Java&Spring記事人気No5
HTML
HTMLのformタグの書き方を完全ガイド!actionとmethod属性の意味を初心者向けにやさしく解説
No.6
Java&Spring記事人気No6
CSS
CSSのnth-child()を完全攻略!特定の順番にスタイルを当てる方法
No.7
Java&Spring記事人気No7
Bootstrap
Bootstrapで学ぶレスポンシブな並び方向の使い方完全ガイド!flex-rowとflex-columnを初心者向けにやさしく解説
No.8
Java&Spring記事人気No8
Bootstrap
Bootstrapモーダルの基本実装を完全解説!data-bs-toggleとdata-bs-targetで簡単に開閉しよう