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

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

技術メモ, CSS

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

この記事は【2022年7月5日】が最後の更新のため、記事の内容が古い可能性があります。

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 -

ニッチなテーマのイラスト素材投稿始めました。良かったら使ってください。
RU DESIGN/無料イラスト・フリー素材「イラストAC」

オリジナル絵本 Kindleにて出版
ナマケモノのふにゃまるちゃん

ドメイン取得は同じところで取得しておくと便利ですよ。
お名前.comは1円から購入(1年間)できるドメインがあるので、いろいろと便利で経済的です。
ホームページ制作ならRU DESIGN

関連記事

ワードプレス各バージョンと使用可能なPHPバージョン一覧
2024/01/29
 WordPressのバージョンによって使用可能なPHPのバージョンは異なってきます。PHPのバージョンによっては、ワードプレスが正常に動作しなかったり、テンプ...
古いMacに「ChromeOS 」をインストールして利用
2023/10/08
 Googleが提供しているChrome OS(クローム・オーエス)は、Linuxをベースとしたオペレーティングシステム(OS)の1つ。その中でPCやMACでも...
公式サポートが終了した古いMacに最新のmacOSをインストールするプロジェクト
2023/10/07
 古いMacに最新のmacOSをインストールするプロジェクト「OpenCore Legacy Patcher」(OCLP)は、Appleが提供する最新のmacO...
【WordPress】古い投稿を現在の日付で再投稿してくれるプラグイン「Republish Old Posts」
2023/08/31
注意:パーマリンクに日付が含まれている場合は、このプラグインを使用しないでください。SEOプラグイン「All in One SEO」との相性もよくないそうです。...
Crayon Syntax Highlighterの代替プラグイン「Enlighter」
2023/06/05
 ソースコードをきれいに表示させるのに役立っていた「Crayon Syntax Highlighter」ですが、更新も止まったままの状態で再開の目処はなさそうで...