[解決済み] CSSでdivのアスペクト比を維持する
2022-03-16 03:51:09
質問
を作成したいのですが
div
ウィンドウの幅が変わると、その幅と高さを変更できるようにする。
幅に応じて高さが変わるようなCSS3ルールはありますか。 アスペクト比を維持したまま ?
JavaScriptでできるのは知っていますが、CSSだけでやりたいのです。
解決方法は?
ラッパーを作成するだけです。
<div>
をパーセント値で
padding-bottom
というように。
.demoWrapper {
padding: 10px;
background: white;
box-sizing: border-box;
resize: horizontal;
border: 1px dashed;
overflow: auto;
max-width: 100%;
height: calc(100vh - 16px);
}
div {
width: 100%;
padding-bottom: 75%;
background: gold; /** <-- For the demo **/
}
<div class="demoWrapper">
<div></div>
</div>
という結果になります。
<div>
高さはコンテナの幅の 75% に等しい (4:3 のアスペクト比)。
これは、パディングのために:
を基準にしてパーセンテージを計算します。 幅 生成されたボックスの含むブロックの [...] (ソースは w3.org 強調)
他のアスペクト比と100%幅の場合のpadding-bottomの値。
aspect ratio | padding-bottom value
--------------|----------------------
16:9 | 56.25%
4:3 | 75%
3:2 | 66.66%
8:5 | 62.5%
divにコンテンツを配置する :
divの縦横比を保ち、コンテンツが伸びるのを防ぐために、絶対位置の子を追加し、wrapperの端までwithで伸ばす必要があります。
div.stretchy-wrapper {
position: relative;
}
div.stretchy-wrapper > div {
position: absolute;
top: 0; bottom: 0; left: 0; right: 0;
}
関連
-
[解決済み】divの高さを画面の残りスペースで埋めるようにする
-
[解決済み] 要素を水平方向にセンタリングする方法
-
[解決済み] div' コンテナに合わせて画像を自動リサイズするにはどうしたらいいですか?
-
[解決済み] divの内容を下に揃える方法
-
[解決済み] リンクを新しいタブまたはウィンドウで開く[重複]。
-
[解決済み] WebSocketとサーバー送信型イベントの比較/EventSource
-
[解決済み] input type="date "のフォーマットを変更する方法はありますか?
-
[解決済み] CSSによる画像の強制リサイズとアスペクト比の保持
-
[解決済み] HTMLのレイアウトにテーブルを使用しない理由は?[クローズド]
-
[解決済み】HTML5入力のプレースホルダの色をCSSで変更する。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] スクロールバーを隠すが、スクロールはできる状態
-
[解決済み] CSSでdivのアスペクト比を維持する
-
[解決済み] リンクを新しいタブまたはウィンドウで開く[重複]。
-
[解決済み] HTML5でfloat入力タイプはありますか?
-
[解決済み] ボディの高さをブラウザの高さの100%にする
-
[解決済み] 特定のクラスや属性を持たない要素を選択するCSSセレクタは書けますか?
-
[解決済み] CSSでdivを縦にスクロールできるようにする
-
[解決済み] 高さが動的幅と同じになる(CSS フルードレイアウト) [重複]。
-
[解決済み】縦横比を維持したままレスポンシブにdivサイズを変更する【重複あり
-
[解決済み] divをレスポンシブな正方形にする方法は?[重複しています。]