Youtube埋め込みで表示の縦横比(アスペクト比)をレスポンシブ対応するメモ

youtube埋め込みしてスマホサイズにすると上下に黒い背景が出るのはかっこ悪い!
どのサイズでもyoutube画面の縦横比のまま表示できるようにするCSSなんだっけ?といつも調べるからメモしとく。

aspect-ratioで縦横比調整

aspect-ratioはアスペクト比を指定するcss。
aspect-ratioは古いブラウザには対応していない場合もあるけど、最新に対応していればいいという場合は便利。
※アスペクト比とは縦横の比率のこと

HTML

<div class="movie">
<iframe width="560" height="315" src="https://www.youtube.com/embed/iES96tY4svQ" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>
</div>

SCSS

.movie{
  max-width: 560px;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  aspect-ratio: 16 / 9;
  iframe{
    width: 100%;
    height: 100%;
  }
}

PCではiframeに記載しているwidth560pxに合わせてセンター表示する仕様にしている。
もしPCでも横幅いっぱいがよかったら、max-width: 560px;とmarginたちを消す。

padding-topで調整することもできるよ

padding-topを使ってアスペクト比を指定する方法。
古いバージョンにも対応という場合はこっちの記述のほうが良いかも。

SCSS

.movie{
  position: relative;
  max-width: 560px;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding-top: 56.25%;
  iframe{
    position: absolute;
    top: 0;
    right: 0;
    width: 100%;
    height: 100%;
  }
}

padding-top: 56.25%;は、16:9の9(縦幅)÷16(横幅)×100で%を割り出した値。

参考にさせてもらったサイト

YouTube動画の埋め込みをレスポンシブ対応する方法(WordPressのGutenbergでの対応も!)

親切丁寧に書かれていてとてもわかり易かったです。ありがとうございます。

ABOUT US
yukipan
Web制作会社で働いてます。パンダとかリラックマとか、まあるいものが好き。好奇心旺盛で、何にでも興味をもってしまう。とりあえずやってみてから取捨選択するのがモットー。今はグリーンカレーとチャイと株式投資がブーム。