ここでは、下記のような条件でページを構成したい場合の事例について見ていきます。
- YouTubeを埋め込んでスマホ対応させたい。
- 埋め込んだ動画をテキストや画像と横に並べて2列で配置したい。
- スマホ表示時は、動画やテキストを1列にしたい。
floatプロパティを使った方法
はじめはfloatプロパティを使って横並びに配置してみます。下記がサンプルです。
ボタンで表示を切り替えてご覧ください。
See the Pen Youtube_side01 by kenichi (@ken81) on CodePen.
レスポンシブ対応できているか確認したい方は、コチラからサンプルをご覧ください。ブラウザの幅を狭めると1カラムになるのが確認できます。
下記がソースコードになります。
HTML
<div class="wrap"> <div class="float-left" > <div class="youtube"> <iframe src="https://www.youtube.com/embed/WkSRoxzk0EY" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe> </div> </div> <div class="float-right" > <p>こちらの動画では、WordPressプラグインをインストールする方法についてご紹介しています。</p> <p>プラグインを有効化したあとは、ダッシュボードの左のメニューや「設定」「ツール」メニューなどで設定を行います。</p> </div> </div> <div class="wrap"> <div class="float-left" > <img src="https://cotodama.co/wp-content/uploads/2018/08/216468139.jpg"> </div> <div class="float-right" > <div class="youtube"> <iframe src="https://www.youtube.com/embed/ZSO5CEgeITE" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe> </div> </div> </div>
CSS
.wrap{ margin-bottom: 1.5rem; } .youtube { position: relative; height: 0; margin-bottom: 20px; padding-bottom: 56.25%; overflow: hidden; } .youtube iframe { position: absolute; top: 0; right: 0; width: 100%; height: 100%; } .wrap img{ width: 100%; } /* ココから下がPC表示(600px以上)のレイアウト */ @media screen and (min-width: 600px) { .float-right{ float: right; width: 49.5%; } .float-left{ float:left; width: 49.5%; } .wrap:after{ display: block; clear: both; content: ""; } }
「YouTube + テキスト」「画像 + YouTube」の2段で作成してあります。使用する画像のタテヨコの比率によっては、調整が必要になりますが、基本構成としては上記のやり方で良いと思います。
まず、レスポンシブの仕組み自体が分からない方は、こちらの記事をご参照ください。
アイフレームをスマホ対応させる仕組み、特にpadding-bottom:56.25%;
の数字の意味を知りたい方は、こちらの記事が参考になります。
floatプロパティの詳しい説明はこちらに記載してあります。
flexboxを使った方法
もう一つの方法は、flexboxを使った表示方法になります。floatプロパティよりもこちらの方が今後は主流になると思います。
ボタンで表示を切り替えてご覧ください。
See the Pen Youtube_side02 by kenichi (@ken81) on CodePen.
レスポンシブの感じをご覧になりたい方は、コチラをクリックして見てください。
HTML
<div class="container"> <div class="item" > <div class="youtube"> <iframe src="https://www.youtube.com/embed/WkSRoxzk0EY" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe> </div> </div> <div class="item" > <p>こちらの動画では、WordPressプラグインをインストールする方法についてご紹介しています。</p> <p>プラグインを有効化したあとは、ダッシュボードの左のメニューや「設定」「ツール」メニューなどで設定を行います。</p> </div> </div> <div class="container"> <div class="item" > <img src="https://cotodama.co/wp-content/uploads/2018/08/216468139.jpg"> </div> <div class="item" > <div class="youtube"> <iframe src="https://www.youtube.com/embed/ZSO5CEgeITE" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe> </div> </div> </div>
CSS
.youtube { position: relative; height: 0; margin-bottom: 20px; padding-bottom: 56.25%; overflow: hidden; } .youtube iframe { position: absolute; top: 0; right: 0; width: 100%; height: 100%; } .container img{ max-width: 100%; } /* ココから下がPC表示(600px以上)のレイアウト */ @media screen and (min-width: 600px) { .container{ display: flex; margin-bottom: 1.5rem; justify-content: space-between; align-items: flex-start; } .item{ flex-basis: 49.5%; } }
これもPC表示の場合のみ、display:flex;
を適用させて2列のレイアウトを組んでいます。
flexプロパティの詳しい説明は下記に載っています。
以上が、YouTUBE動画を横並びに配置してスマホ対応させる方法でした。ひとつひとつのプロパティについてお話すると、非常に長くなってしまうので、関連記事の紹介ばかりになってしまいましたが、みなさんの参考になれば幸いです。