[解決済み] margin:autoを使用してdivを垂直方向に整列させる
2022-06-02 15:58:11
質問
で、div を水平方向にセンタリングできることは知っています。
margin:0 auto;
. とする必要があります。
margin:auto auto;
は、私が考えるように動作するはずですか?縦方向にもセンタリングする?
なぜ
vertical-align:middle;
も機能しないのでしょうか?
.black {
position:absolute;
top:0;
bottom:0;
left:0;
right:0;
background:rgba(0,0,0,.5);
}
.message {
background:yellow;
width:200px;
margin:auto auto;
padding:10px;
}
<div class="black">
<div class="message">
This is a popup message.
</div>
</div>
どのように解決するのですか?
2020年8月更新
下記はまだ有益な情報で読む価値がありますが、Flexbox は以前からありましたので、以下のようにそれを使ってください。 この回答 .
使用できません。
vertical-align:middle
なぜなら
は
ではない
ブロックレベル要素に適用される
margin-top:auto
そして
margin-bottom:auto
というのは
として計算され、使用される値は
ゼロ
margin-top:-50%
なぜなら
パーセントベースのマージン値は
幅
含むブロックの
実際、ドキュメントフローの性質と 要素の高さ計算アルゴリズム の性質上、要素をその親要素内の垂直方向の中央に配置するためにマージンを使用することは不可能です。垂直方向のマージンの値が変更されるたびに、親要素の高さの再計算 (再フロー) が行われ、その結果、元の要素の再中心化が行われます...つまり、無限ループとなります。
使えます。
このようないくつかの回避策 のように、3つの要素をこのようにネストさせなければなりません。
.container {
display: table;
height: 100%;
position: absolute;
overflow: hidden;
width: 100%;
}
.helper {
#position: absolute;
#top: 50%;
display: table-cell;
vertical-align: middle;
}
.content {
#position: relative;
#top: -50%;
margin: 0 auto;
width: 200px;
border: 1px solid orange;
}
<div class="container">
<div class="helper">
<div class="content">
<p>stuff</p>
</div>
</div>
</div
JSFiddle は、Browsershotによると正常に動作しています。
関連
-
[解決済み】divの高さを画面の残りスペースで埋めるようにする
-
[解決済み] input type="file "ボタンのスタイリング
-
[解決済み] 画像の横のテキストを縦に揃える?
-
[解決済み] div 内の画像を縦に並べる方法
-
[解決済み] divの中のテキストを縦に揃えるにはどうしたらいいですか?
-
[解決済み] divの内容を下に揃える方法
-
[解決済み] div内の要素を縦に並べるにはどうしたらいいですか?
-
[解決済み] メモ帳++でXML/HTMLを自動整形/インデントする方法
-
[解決済み] 残りの幅を埋めるためにdivを展開する
-
[解決済み】CSSを使用して、すべてのブラウザでdiv要素を垂直方向に中央に配置するにはどうすればよいですか?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
document.forms 使用方法
-
[解決済み] ジャンボトロンのセンター出しは?
-
[解決済み] HTMLにおける'"'エンティティの使用法
-
[解決済み] 横型リストアイテム
-
[解決済み] セレクトボックスのプレースホルダーを作成するにはどうすればよいですか?
-
[解決済み] input type="file "ボタンのスタイリング
-
[解決済み] localStorage、sessionStorage、session、cookieの違いは何ですか?
-
[解決済み] HTML Input="file" Accept Attribute File Type (CSV)
-
[解決済み] div内の画像の下に余分なスペースがある
-
[解決済み] 絶対位置の親 div の内側に div を垂直にセンタリングする方法