ホームページ ウェブフロントエンド CSSチュートリアル Div 要素の自動サイズ変更時にアスペクト比を維持するにはどうすればよいですか?

Div 要素の自動サイズ変更時にアスペクト比を維持するにはどうすればよいですか?

Nov 23, 2024 pm 03:05 PM

How to Maintain Aspect Ratio When Auto-Resizing a Div Element?

Div 要素のサイズを自動的に変更しながらアスペクト比を維持する方法

特定のアスペクト比を維持しながらサイズを自動的に調整する div 要素の作成挑戦になる可能性があります。目標は、div がウィンドウ内の中央に留まり、その形状を歪めることなく、必要に応じて利用可能なスペースに合わせて縮小または拡大することです。

これを達成するための鍵は、アスペクト比を考慮した CSS プロパティを利用することにあります。制御と適応型サイジング。アスペクト比プロパティは、CSS3 で導入された強力なツールで、開発者が高さと幅の固有の比率を指定できるようにします。この比率は、利用可能なスペースに関係なく維持されます。

アスペクト比に加えて、min-width プロパティと min-height プロパティを使用して、div の最小寸法を確立できます。これらのプロパティを組み合わせることで、指定されたアスペクト比を尊重しながら、利用可能なウィンドウ スペース内に収まる div 要素を作成できます。

次の CSS コードを考えてみましょう:

body {
  height: 100vh;
  margin: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  background: gray;
}


.stage {
  --r: 960 / 540;

  aspect-ratio: var(--r);
  width:min(90%, min(960px, 90vh*(var(--r))));

  display: flex;
  justify-content: center;
  align-items: center;


  background: linear-gradient(30deg,red 50%,transparent 50%),
    chocolate;
}
ログイン後にコピー

この例ではでは、必要なアスペクト比を表す 960 対 540 の比率を格納する --r 変数を定義します。次に、この比率を維持するためにアスペクト比プロパティが使用されます。

幅プロパティは、使用可能な幅の最小値 90%、960px、または使用可能な高さとアスペクト比に基づいて計算された幅に設定されます。これにより、div がウィンドウ内に収まる間、指定された比率を維持することが保証されます。

min-width プロパティと min-height プロパティは明示的に設定されませんが、デフォルト値の auto により、div はそれに合わせて縮小できます。アスペクト比を維持しながらウィンドウ サイズを小さくします。

表示プロパティは、折り返し div 内での中央揃えを有効にするために flex に設定され、justify-content プロパティと align-items プロパティが使用されます。

その結果、ステージ div 要素はアスペクト比を維持しながら自動的にサイズ変更され、ウィンドウの寸法に関係なく中央に配置され、視覚的に一貫した状態が保たれます。

以上がDiv 要素の自動サイズ変更時にアスペクト比を維持するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

粘着性のあるポジショニングとサスのダッシュを備えた積み重ねられたカード 粘着性のあるポジショニングとサスのダッシュを備えた積み重ねられたカード Apr 03, 2025 am 10:30 AM

先日、Corey Ginnivanのウェブサイトから、この特に素敵なビットを見つけました。そこでは、スクロール中にカードのコレクションが互いに積み重ねられていました。

Googleフォント変数フォント Googleフォント変数フォント Apr 09, 2025 am 10:42 AM

Google Fontsが新しいデザイン(ツイート)を展開したようです。最後の大きな再設計と比較して、これははるかに反復的です。違いをほとんど伝えることができません

HTML、CSS、JavaScriptを使用してアニメーションカウントダウンタイマーを作成する方法 HTML、CSS、JavaScriptを使用してアニメーションカウントダウンタイマーを作成する方法 Apr 11, 2025 am 11:29 AM

プロジェクトにカウントダウンタイマーが必要だったことはありますか?そのようなことのために、プラグインに手を伸ばすのは自然なことかもしれませんが、実際にはもっとたくさんあります

HTMLデータ属性ガイド HTMLデータ属性ガイド Apr 11, 2025 am 11:50 AM

HTML、CSS、およびJavaScriptのデータ属性について知りたいと思っていたことはすべて。

CSSを介してファーストクラスの名前アイテムを使用して子要素を選択する方法は? CSSを介してファーストクラスの名前アイテムを使用して子要素を選択する方法は? Apr 05, 2025 pm 11:24 PM

要素の数が固定されていない場合、CSSを介して指定されたクラス名の最初の子要素を選択する方法。 HTML構造を処理するとき、あなたはしばしば異なる要素に遭遇します...

フレックスレイアウト内の紫色のスラッシュ領域が誤って「オーバーフロー空間」と見なされるのはなぜですか? フレックスレイアウト内の紫色のスラッシュ領域が誤って「オーバーフロー空間」と見なされるのはなぜですか? Apr 05, 2025 pm 05:51 PM

フレックスレイアウトの紫色のスラッシュ領域に関する質問フレックスレイアウトを使用すると、開発者ツールなどの混乱する現象に遭遇する可能性があります(D ...

SASSをより速くするための概念の証明 SASSをより速くするための概念の証明 Apr 16, 2025 am 10:38 AM

新しいプロジェクトの開始時に、SASSコンピレーションは瞬く間に起こります。これは、特にbrowsersyncとペアになっている場合は素晴らしい気分です。

See all articles