YouTubeの動画をブログやウェブサイトに埋め込む際にPC・スマホ共に使える、横幅いっぱいのレスポンシブに対応させたいくつかの方法をまとめました。

YouTubeから配布されている埋め込みコードには予めサイズが書かれており、その数字を調整することでサイズの変更は可能ですが、可変でないためパソコンから見るとちょうどよくてもスマホでははみ出てしまったりなど、うまいこと画面に合わせたサイズにするのが難しいかと思います。

解決する方法はCSSの「aspect-ratioを使う」か「padding-topを使う」の2つのパターンがあり、おすすめは前者。
数年前まではaspect-ratioに対応していないブラウザがありましたが、現在ではすべてのモダンで対応しているうえ、比率を変える場合も別のクラスを追記するときも簡単な記述で実現出来るためです。

それではまずは埋め込みコードを取得していきましょう。

YouTube動画の右下にある共有のボタンからです。

YouTube埋め込みコード取得ボタン
YouTube埋め込みコード取得ボタン

クリックで共有メニューが浮き出てくるのでその中の埋め込むに進むと動画の埋め込みに埋め込み用のコードが表示されているのでコピーします。

YouTubeの埋め込みコード
YouTubeの埋め込みコード

aspect-ratioで対応させる方法

おすすめの方法で、アスペクト比が異なる動画を埋め込む場合も、比率の数字を変更するだけで対応可能です。

「youtube_container」の部分はそのまま使ってもいいですし、サイトの命名規則に合わせて変更しても大丈夫です。
ブラウザ対応状況はこちら「Can I Use」で確認できます。

.youtube_container {
  width: 100%;
  aspect-ratio: 16 / 9;
}

.youtube_container iframe {
  width: 100%;
  height: 100%;
}

padding-topで対応させる方法

レガシーブラウザにも対応させたい場合などはこちらを使えます。

パーセンテージを変更することで他の比率の動画にも対応可能です(下記参照)。

.youtube_container {
  position: relative;
  width: 100%;
  padding-top: 56.25%;
}

.youtube_container iframe {
  position: absolute;
  top: 0;
  right: 0;
  width: 100%;
  height: 100%;
}
4:3の場合
padding-top: 75%; /* アスペクト比4:3 */
3:2の場合
padding-top: 66.66%; /* アスペクト比3:2 */
1:1の場合
padding-top: 100%; /* アスペクト比1:1 */

WordPressでpadding-topを使う場合

環境によっては上記のpadding-topの方法ではWordPressで効かない場合もあるので、下記のコードを使います。

.youtube_container {
  position: relative;
  width: 100%;
  height: 0;
  padding-top: 56.25%;
}

.youtube_container iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
Pocket

   

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です