モーダルに入れられる色々なコンテンツ
モーダルの<div class="modal-body">
の中には、本当に色々な種類の情報を入れることができるんだ。いくつか代表的な例を見てみよう。
1. テキスト情報
お知らせ、詳しい説明文、利用規約など、まとまった文章を表示するのに適しているよ。もし文章が長くなってモーダルからはみ出しそうな場合は、.modal-body
にCSSでoverflow-y: auto;
とmax-height
を指定すると、スクロールバーが出て読めるようになるよ。
<div class="modal-body">
<h4>利用規約</h4>
<p>第1条 このサービスは...</p>
<p>第2条 禁止事項は...</p>
<!-- 長い文章が続く... -->
</div>
2. 画像や動画
画像ギャラリーで小さな画像(サムネイル)をクリックしたら、大きな画像がモーダルで表示される、なんていうのはよく見る使い方だね。動画(例えばYouTubeの埋め込み動画)もモーダルで表示できるよ。
<div class="modal-body">
<h4>素敵な景色</h4>
<img src="images/beautiful-landscape.jpg" alt="美しい風景" class="modal-image-example">
<p>これはサンプル画像です。</p>
<h4>プロモーションビデオ</h4>
<iframe class="modal-iframe-example" src="https://www.youtube.com/embed/VIDEO_ID" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>
ポイント: 画像を表示するときは、max-width: 100%; height: auto;
をCSSで指定しておくと、モーダルの幅に合わせて画像の大きさが自動で調整されて、はみ出すのを防げるよ(レスポンシブ対応)。動画の場合、モーダルを閉じた時に動画の再生も止めるようにJavaScriptで制御すると、さらに親切だね!
3. フォーム
ログイン、ユーザー登録、アンケート、お問い合わせなど、ユーザーに何かを入力してもらうフォームもモーダルでよく使われるよ。
<div class="modal-body">
<h4>お問い合わせ</h4>
<form id="contactForm">
<div class="form-group">
<label for="name">お名前:</label>
<input type="text" id="name" name="name" required>
</div>
<div class="form-group">
<label for="email">メールアドレス:</label>
<input type="email" id="email" name="email" required>
</div>
<div class="form-group">
<label for="message">お問い合わせ内容:</label>
<textarea id="message" name="message" required></textarea>
</div>
<!-- 送信ボタンはモーダルのフッターに置くことが多い -->
</form>
</div>
4. iframe (外部コンテンツの埋め込み)
<iframe>
タグを使うと、外部のウェブページ(例えば、Googleマップやカレンダーサービスなど)をモーダルの中に埋め込むこともできるんだ。