どうも!かけちまるです!
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かお問い合わせフォームから受け付けております。