どうも!かけちまるです!
Webサイトで動画を扱うとき、YouTubeの埋め込みをよく使うと思います。
でもレスポンシブにしようとすると縦横比が崩れてあんまり綺麗にならずに悩んでる方いませんか?
その縦横比、保つ方法あるんです。
てことでこの記事ではYouTube埋め込みを縦横比を保ちながらレスポンシブ対応にする方法をご紹介します。
この記事を読むと、
が理解できます。
padding-topを利用して縦横比を保つ方法をご紹介します。
基本のHTMLは以下です。
任意のYouTube埋め込みコードをdiv要素で囲んでいます。div要素は縦横比を保つための要素です。
HTMLコピー<div class="youtube_wrap"> <iframe width="560" height="315" src="https://www.youtube.com/embed/JHLY-NzJnjU" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe> </div>
このHTMLにCSSをあてていきます。
padding-topを利用して縦横比を保つCSSは以下になります。
CSSコピー.youtube_wrap{ padding-top: 56.25%; width: 100%; position: relative; } .youtube_wrap iframe{ width: 100%; height: 100%; position: absolute; top: 0px; left: 0px; }
padding-topを利用して縦横比を保つCSSの解説をします。
なぜ、padding-top: 56.25%;を指定しているか?
まず知っておいて欲しいことが2つあります。
YouTubeに合わせてアスペクト比を16:9にすると、widthが100%(16)の場合padding-topが56.25%(9)になるというわけです。
2021年1月19日にChrome 88リリースされ、CSSのaspect-ratioプロパティがサポートされました。aspect-ratioプロパティは、ボックスや動画、画像のアスペクト比を指定することができます。
aspect-ratioプロパティのサポート状況はというとまだリリースされたばかりなのでサポートしているブラウザは少ないです。
これから徐々にサポートされていくと思われます。
| IE | Edge | Firefox | Chrome | Safari | iOS | Android | |
|---|---|---|---|---|---|---|---|
| aspect-ratio | × | 88~ | 89~ | 88~ | × | × | 90 |
最新のサポート状況はこちら
https://caniuse.com/?search=aspect-ratio
基本のHTMLは以下です。
任意のYouTube埋め込みコードをコピペしてくるだけです。
HTMLコピー<iframe class="youtube_ifreme" width="560" height="315" src="https://www.youtube.com/embed/JHLY-NzJnjU" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
このHTMLにCSSをあてていきます。
aspect-ratioを利用して縦横比を保つCSSは以下になります。
CSSコピー.youtube_ifreme{ aspect-ratio: 16 / 9; width: 100%; height: auto; }
aspect-ratioプロパティがサポートされていないブラウザでは正しく表示されません。
padding-topを使う方法よりもHTMLとCSSがシンプルですね。
YouTubeの埋め込みタグのaspect-ratioを指定します。
YouTubeのアスペクト比は16:9なのでaspect-ratio: 16 / 9;と指定します。
あとは、widthを任意の値で指定し、heightをautoに指定してあげます。
そうするとアスペクト比を16:9に保ったままレスポンシブになってくれます。
YouTube埋め込みを縦横比を保ちながらレスポンシブ対応する方法を2つご紹介しました。
オススメの方法はpadding-topを使う方法です。aspect-ratioを使う方法の方がシンプルだし便利なんですが、まだサポートしていないブラウザがあるので使いにくいですね。
おわり
フィードバックを送信
記事についてのフィードバックはTwitterかお問い合わせフォームから受け付けております。