CSSは高さと幅を固定した要素の比例表示効果を実現します

CSSは高さと幅を固定した要素の比例表示効果を実現します

padding-top パーセンテージを使用すると、固定幅と比例した高さの表示を実現できます。現在の要件は、ビデオの div ボックスの高さが固定されていることです。幅を比例して表示するにはどうすればよいでしょうか。

解決後の効果は図のようになります。

赤いボックスは、上記の固定高さ比の範囲内での幅の調整の効果を示しています。

CSSコード:

。コンテンツ {
      マージン: 0 自動;
      高さ:79vh;
      .ビデオボックス{
        位置: 相対的;
        高さ: 100%;
        オーバーフロー: 非表示;
        マージン: 0 自動;
        幅: 79vh*1.778;
        最大幅: 100vw;
        .ad_pic {
          表示: なし;
          位置: 絶対;
          上: 0;
          左: 0;
          幅: 100%;
          高さ: 100%;
          背景: url(6.jpg) 繰り返しなし 中央;
          背景サイズ: 100% 100%;
          画像 {
            幅: 100%;
            高さ: 100%;
          }
          .btn_play {
            表示: インラインブロック;
            .幅(50);
            .高さ(50);
            位置: 絶対;
            左: 50%;
            上位: 50%;
            .左マージン(-25);
            .マージントップ(-25);
            背景: url(../../public/img/icon_play.png) 繰り返しなし 中央;
            背景サイズ: 100% 100%;
          }
        }
        iframe、オブジェクト、埋め込み、ビデオ {
          位置: 絶対;
          上: 0;
          左: 0;
          幅: 100%;
          高さ: 100%;
        }
        .ビデオカード{
          位置: 絶対;
          上: 0;
          左: 0;
          幅: 2px;
          高さ: 1px;
        }
      }
    }

html:

<div class="content">
        <div class="video_box">
            <div class="ad_pic">
                <span class="btn_play"></span>
            </div>
            <ビデオ id="ad_video"
                   自動バッファ
                   src="a.mp4"
                   自動再生
                   プリロード
                   コントロール=""
                   ループ
                   ポスター="6.jpg"
                   webkit-playsinline="true"
                   playsinline="true"
                   x-webkit-airplay="許可"
                   x5-プレイインライン
                   x5-ビデオプレーヤータイプ="h5"
                   x5-ビデオプレーヤーフルスクリーン="true"
                   x5-ビデオの向き="縦"
                   >
            </ビデオ>
        </div>
    </div>

ビデオにはアスペクト比があるため、ここでのビデオの高さは、外側のボックスの高さ * 比率、つまりビデオの幅に等しくなります。ビデオが幅広すぎて画面を超えないようにするには、ここで max-width: 100vw; 制限を追加し、margin:0 auto; を使用して中央に配置します。これで問題は解決しました。

要約する

上記は、固定の高さと比例幅の表示効果を持つ要素を実現するために紹介した CSS です。お役に立てれば幸いです。ご質問がある場合は、メッセージを残してください。すぐに返信いたします。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。

<<:  今日は、珍しいけれど役に立つJSテクニックをいくつか紹介します

>>:  Docker のインストールと構成コマンドのコード例

推薦する

Vue.jsのレンダリング関数の使い方の詳しい説明

Vue では、ほとんどの場合、テンプレートを使用して HTML を作成することを推奨しています。ただ...

HTMLで境界線を設定する3つの方法の詳細な説明

HTML で境界線を設定する 3 つの方法 境界線の幅: 1px 2px 2px; 境界線のスタイル...

TomcatはNginxリバースプロキシのクライアントドメイン名を取得します

質問Nginx リバース プロキシの後、Tomcat アプリケーションは、クライアント ブラウザーの...

MySQLデータベースのストアドプロシージャとトランザクションの違い

トランザクションは、複数の SQL ステートメントの原子性、つまり、それらが一緒に完了するか、一緒に...

MySQLのスイッチングデータ保存ディレクトリの実装方法

MySQLのスイッチングデータ保存ディレクトリの実装方法今日、仕事中に、mysql が保存されている...

mysql8.0.14.zip のインストール中にデータ フォルダを自動的に作成できませんでした。サービスを開始できません。

今日システムを再インストールした後、コンピューターに mysql を再インストールし、ZIP ファイ...

WeChatアプレットでラッキーホイールゲームを実装する方法

ここでは主に、WeChat アプレットでラッキーホイール ゲームを開発する方法を紹介します。主に J...

sqlalchemy に基づいて MySQL で追加、削除、変更、クエリ操作を実装する

需要シナリオ:上司は、クロ​​ーラーを使用してMySQLデータベースにデータを書き込んだり更新したり...

Nginx ローカル ディレクトリ マッピング実装コード例

他のデバイスの画像をローカルディレクトリにマウントするなど、サーバー上の静的リソースにアクセスする必...

Vue lazyload 画像遅延読み込み例の詳細な説明

ドキュメント: https://github.com/hilongjw/vue-lazyload 1...

MySQLで全角文字と半角文字を保存する場合の違い

残念ながら、社内の IM のテスト中に MYSQL_DATA_TRUNCATED エラーが再び発生し...

上下に空白行があるフォームを挿入する解決策

ウェブページを作成するときに、フォームを挿入した後、フォームの上下に空白行が表示されることがよくあり...

CSSはフロートをシミュレートして、画像の左右を囲む中央テキストの効果を実現します。

画像の周囲にテキストを折り返すとは何ですか?これは次の図の効果です。 エフェクトのCSSコードはここ...

Linuxシステムでノードプロセスを実行しているが、プロセスを強制終了できない問題を解決します

まず、Linux システムで実行されているノード プロセスはプロセスを強制終了できないことを紹介しま...

JavaScriptタイマーとボタン効果設定の詳細な説明

タイマー効果: <div> <font id='timeCount'...