div 内の水平・垂直方向の中央揃え
2022-02-16 06:01:44
方法1
transform を使用して div を中央に配置するには、まず位置を設定します。
css
.outer {
width: 500px;
height: 200px;
background-color: green;
position: relative;
}
.inner {
width: 20px;
height: 10px;
background-color: wheat;
position: absolute;
}
.center {
left: 50 %;
top: 50 %;
transform: translate(- 50 %, - 50 %);/* own 50% */
}
html
<div class="outer">
<div class="inner center"></div>
</div>
方法2
margin: auto;を使って、最初に位置決めをする。
css
.outer {
width: 500px;
height: 200px;
background-color: green;
position: relative;
}
.inner {
width: 20px;
height: 10px;
background-color: wheat;
position: absolute;
}
.center {
left: 0;
top: 0;
right: 0;
bottom: 0;
margin: auto;
}
html
<div class="outer">
<div class="inner center"></div>
</div>
方法3
display:flexでdivを中央寄せにする
css
.flex{
display:flex;
align-items: center;
justify-content:center;
width:500px;
height:500px;
border:10px solid;
}
.flex_son{
width:100px;
height:100px;
border:10px solid;
}
html
<div class='flex'>
<div class="flex_son"></div>
</div>
メソッド4
これは、おそらく最も一般的な方法で、divの絶対配置を使用して水平および垂直方向のセンタリングを行います[margin negative spacing]。
.outer {
width: 500px;
height: 500px;
position: relative;
background:red;
}
.center{
width:200px;
height: 200px;
background:green;
position: absolute;
left:50%;
top:50%;
margin-left:-100px;// half of the width
margin-top:-100px;
}
<div class="outer">
<div class="center"></div>
</div>
メソッドファイブ
親ボックスを table-cell 要素に設定し、text-align:center と vertical-align:middle で水平方向と垂直方向の中央揃えにすることができます。
子要素はinline-blockに設定されています。
Aa{
display: table-cell;
text-align:center;
vertical-align: middle;
width: 500px;
height: 500px;
background:green;
}
.aa{
display: inline-block;
background:red;
width: 100px;
height: 100px;
}
<div class="Aa">
<div class="Aa"></div>
</div>
方法6
親ベースラインを擬似要素 :before で vertical-align:middle で揃える。
<style type="text/css">
.parent {
display: inline-block;
width: 300px;
height: 300px;
font-size: 0;
background: #798456;
text-align: center;
}
.parent:before {
display: inline-block;
width: 20px;
height: 100%;
content: '';
background: #132456;
vertical-align: middle;
}
.child {
display: inline-block;
width: 50px;
height: 50px;
background: #19be6b;
vertical-align: middle;
}
</style>
<div class="parent">
<div class="child">child</div>
</div>
方法(ウィンドウを中央化する)
vw,vhを使用して実現
vwは可視ウィンドウの幅の単位で、パーセンテージに少し似ていて、1vw=可視ウィンドウの幅の100分の1です。例えば、ウィンドウの幅のサイズが1800pxの場合、1vw = 18pxです。パーセンテージとは異なり、vwは常に可視ウィンドウの幅に対して相対的であり、パーセンテージはその親要素の幅に関連します。
height + margin-top + margin-bottom = 100、width + margin-left + margin-right = 100となるようにmarginの上下の間隔を設定するだけで、縦方向の中央寄せに対応することができるようになります
#aa {
width: 50vw;
height: 50vh;
margin: 25vh auto;
/*margin: 25vh 25vw; */
}
<div id="aa"></div>
関連
-
[解決済み] Bootstrapのカラムが機能しない
-
[解決済み] div に斜めのエッジを作成する [重複] 。
-
[解決済み] WebForms UnobtrusiveValidationMode には、'jquery' の ScriptResourceMapping が必要です。jquery という名前の ScriptResourceMapping を追加してください(大文字と小文字を区別します)。
-
[解決済み] Favicon.icoを表示させることができません。
-
[解決済み] html要素間の改行を避ける [重複]。
-
[解決済み] CSS3 トランスフォーム 片方だけ傾ける
-
[解決済み] ページのソースにあるこの長いスクリプトは何ですか?何に使われているのでしょうか?
-
[解決済み] ドット付きの<hr/>タグを作成するには?[重複しています]
-
[解決済み] ウェブページのフッター div を中央に配置する方法
-
[解決済み] ウィンドウサイズ変更時に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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】JQuery: 'Uncaught TypeError: ajaxリクエストで「Illegal invocation」が発生する - 複数の要素
-
[解決済み】「選択されたファイルがありません」を変更しました。
-
[解決済み] bodyタグに追加された奇妙なiframe、`rufous-sandbox`について
-
[解決済み] d3.tipが動作しないのはなぜですか?
-
[解決済み] css画像が表示されない
-
[解決済み] Bootstrapのカラム内で画像を中央に配置する方法 [重複]について
-
[解決済み] CSSのpadding-bottomが効かないようです。
-
[解決済み] HTMLに改ページを挿入し、wkhtmltopdfがそれを解析するにはどうすればよいですか?
-
[解決済み] favicon.icoのエラーが発生します。
-
[解決済み] cssで円の周りにも点線のボーダーを作るには?