YouTube動画の埋め込みiframeに対してだけアスペクト比を調整する方法
2 min read
概要
YouTube 動画をサイトに埋め込む際、スマホサイズにも対応するため、CSS を調整する必要があった。
実装方法
埋め込み HTML の記述
YouTube の埋め込み HTML は以下の通り。
<iframe
width="560"
height="315"
src="https://www.youtube.com/embed/XXXXXXXX"
title="YouTube video player"
frameborder="0"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
allowfullscreen
></iframe>
「プライバシー強化モードを有効にする」を有効にした場合は以下の通り。
<iframe
width="560"
height="315"
src="https://www.youtube-nocookie.com/embed/XXXXXXXX"
title="YouTube video player"
frameborder="0"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
allowfullscreen
></iframe>
src
に含まれるドメインは、通常はwww.youtube.com
だが、プライバシー強化モードの場合はwww.youtube-nocookie.com
になる。
YouTube の iframe 要素に対して、aspect-ratio プロパティで比率を指定する
iframe 要素に対して、aspect-ratio
プロパティで比率を指定する(今回は 16:9 の比率を指定)。
/* `src` の値に `youtube`が含まれているか */
iframe[src*="youtube"] {
width: 100%;
height: auto;
aspect-ratio: 16 / 9;
}
これにより、YouTube 動画の埋め込み iframe に対してのみ、aspect-ratio
プロパティを適用させることができ、それ以外の iframe には影響を与えることがない。