1. TOP
  2. ニッチ技術
  3. アスペクト比を指定し保持できるaspect-ratio

アスペクト比を指定し保持できるaspect-ratio

ニッチ技術, 技術メモ

2022/07/05
2025/04/20
アスペクト比を指定し保持できるaspect-ratio

YouTubeなどの動画を埋め込む際、そのまま貼り付けるとスマホなどモバイルで表示した際にはみ出てしまいます。テーマによっては、レスポンシブに対応しているかと思いますが、自作した場合などはこのような対応が必要になります。

投稿時に貼り付けたiframeにdivを付与

  function iframe_in_div($the_content) {
    if ( is_singular() ) {
    $the_content = preg_replace('/<iframe/i', '<div class="youtube"><iframe', $the_content);
    $the_content = preg_replace('/<\/iframe>/i', '</iframe></div>', $the_content);
    }
    return $the_content;
    }
    add_filter('the_content','iframe_in_div');

投稿内容を表示するthe_content();にiframeがあった場合class=”youtube”を自動的にdivで囲ってくれます。

HTMLではこのように表示。

<div class="youtube">
<iframe src="#"></iframe>
</div>

CSSはこんな感じで指定。

.youtube {
position: relative;
width: 100%;
padding-top: 56.25%;
}
.youtube iframe{
position: absolute;
top: 0;
right: 0;
width: 100%;
height: 100%;
}

サンプルではYoutubeのアスペクト比16:9になるので、padding-topを9÷16×100=56.25%と計算しないといけません。
スマートではないし面倒ですね。

aspect-ratioでシンプルにアスペクト比を指定

このサイトでも同様にしてあるのですが、もっとシンプルにしたいですよね。※現在は下記内容に修正済み。

ここからが今回の本題。
aspect-ratioを使用すればもっと簡単にアスペクト比を指定できます。

.youtube {
aspect-ratio: 16 / 9;
}
.youtube iframe{
width: 100%;
height: 100%;
}

aspect-ratio: 16/9; これで16:9のアスペクト比で指定されます。
safariの対応が遅かったこともあり使用を見送ってましたが、現在はモダンブラウザにすべて対応しています。

参考としてYouTubeの動画を貼ってみます。

ブラウザのサイズに合わせて表示されているかと思います。

シンプルなコードが使えるようになってくると、不具合が出た場合も対応が楽になりますね。
前に覚えた知識を当たり前だと思わず、常にアップデートしていきましょう!

PR

ニッチなテーマのイラスト素材を投稿中!ぜひご利用ください。

ナマケモノなど可愛いイラストをイラストACで無料配布中!

オリジナル絵本をKindleで出版!

ナマケモノのふにゃまるちゃんを読む

困ったときは格安で依頼!RU DESIGNも出品中

格安レンタルサーバーでサイト運営を始めよう

ドメイン取得は一括管理が便利!

応援・支援よろしくお願いします!サイト運営に活用させていただきます。

Braveクリエイターサポート
ホームページ制作ならRU DESIGN

関連記事

【WordPress初心者さん必見!】「これ、どうすればいいの?」検索しても意外と見つからない疑問を解決!
2025/04/19
WordPressでのサイト運営、始めてみましたか?✨ 最初は設定や記事の書き方など、覚えることがたくさんで大変ですよね!基本的な操作は色々なサイトで解説されて...
WordPressで「Missing a temporary folder」エラーを解決!ファイルがアップロードできない時の簡単な対処法
2025/04/19
WordPressで画像やプラグインをアップロードしようとしたら、「Missing a temporary folder」というエラーが出て、うまくアップロード...
WPFormsで「JavaScriptの問題を検出しました」メッセージが表示された時の原因と対処法
2025/04/19
WordPressサイトで人気の高いお問い合わせフォームプラグインの一つであるWPFormsを利用していると、サイトの管理画面や、実際にフォームが表示されている...
WordPressサイトの処理が止まる?「Maximum execution time exceeded」エラーの原因と対策
2025/04/18
WordPressサイトを運営していると、時々「Fatal error: Maximum execution time of XX seconds exceed...
WordPressで遭遇しやすい「原因が分かりにくい」エラーと解決策
2025/04/18
WordPressでウェブサイトを運用していると、予期しないエラーメッセージに遭遇することがあります。有名なエラー(例えば、白い画面だけが表示される「真っ白画面...