iframe の高さをコンテンツに合わせる frame-sizing: content-height;

🖼️
note

iframe の高さをコンテンツの内容にあわせるという、少し前から話題になっていた機能だが、Chrome 154 で正式に使えるようになった。

表示する側は iframe に次のように指定することで、その iframe の高さがコンテンツに沿ったものになる。

iframe {
  frame-sizing: content-height;
}

frame-sizing にはこれ以外にも content-width content-inline-size content-block-size があり、width だけで使うことはなかなかなさそうだが、他は使いたいシーンがありそう。

注意点として、表示される側の HTML で responsive-embedded-sizing を設定する必要がある。allow-origins=* でも特段問題はなさそうだが、利用側を制限することが可能。

<meta name="responsive-embedded-sizing" content="allow-origins=*">

また、コンテンツのサイズが変更になった場合、表示される側から window.requestResize() を呼び出すことでリサイズを要求できる。

yaakai.to