[解決済み] Flexbox:水平方向と垂直方向の中央揃え
2022-03-23 12:18:36
質問
フレックスボックスを使用して、divを水平方向と垂直方向にコンテナ内で中央化する方法。以下の例では、各番号を下(列)にして、水平方向に中央揃えしたい。
.flex-container {
padding: 0;
margin: 0;
list-style: none;
display: flex;
align-items: center;
justify-content: center;
}
row {
width: 100%;
}
.flex-item {
background: tomato;
padding: 5px;
width: 200px;
height: 150px;
margin: 10px;
line-height: 150px;
color: white;
font-weight: bold;
font-size: 3em;
text-align: center;
}
<div class="flex-container">
<div class="row">
<span class="flex-item">1</span>
</div>
<div class="row">
<span class="flex-item">2</span>
</div>
<div class="row">
<span class="flex-item">3</span>
</div>
<div class="row">
<span class="flex-item">4</span>
</div>
</div>
http://codepen.io/anon/pen/zLxBo
解決方法は?
以下のようなものがいいのではないでしょうか。
html, body {
height: 100%;
}
body {
margin: 0;
}
.flex-container {
height: 100%;
padding: 0;
margin: 0;
display: flex;
align-items: center;
justify-content: center;
}
.row {
width: auto;
border: 1px solid blue;
}
.flex-item {
background-color: tomato;
padding: 5px;
width: 20px;
height: 20px;
margin: 10px;
line-height: 20px;
color: white;
font-weight: bold;
font-size: 2em;
text-align: center;
}
<div class="flex-container">
<div class="row">
<div class="flex-item">1</div>
<div class="flex-item">2</div>
<div class="flex-item">3</div>
<div class="flex-item">4</div>
</div>
</div>
でデモをご覧ください。 http://jsfiddle.net/audetwebdesign/tFscL/
あなたの
.flex-item
要素はブロックレベルでなければなりません (
div
ではなく
span
) で、高さと上下のパディングを正しく動作させたい場合。
また
.row
に、幅を設定します。
auto
ではなく
100%
.
あなたの
.flex-container
プロパティは問題ありません。
もし
.row
をビューポートの垂直方向の中央に配置するには、高さを100%にして
html
と
body
をゼロにし、さらに
body
の余白になります。
なお
.flex-container
さもなければ、コンテナはコンテンツを囲むのに必要な最小の高さを計算し、この例ではビューポートの高さよりも低くなります。
脚注です。
その
flex-flow
,
flex-direction
,
flex-wrap
プロパティがあれば、このデザインはより簡単に実装できたはずです。私は
.row
コンテナは、要素の周りに何らかのスタイル(背景画像、ボーダーなど)を追加するのでなければ、必要ありません。
便利な資料があります。 http://demo.agektmr.com/flexbox/
関連
-
[解決済み] 要素を水平方向にセンタリングする方法
-
[解決済み] CSSでcellpaddingとcellspacingを設定する?
-
[解決済み] Webフォームのフィールド/入力タグでブラウザのオートコンプリートを無効にするにはどうすればよいですか?
-
[解決済み] 画像の横のテキストを縦に揃える?
-
[解決済み] divの中のテキストを縦に揃えるにはどうしたらいいですか?
-
[解決済み] フレックスボックスのアイテム間の距離を設定するためのより良い方法
-
[解決済み] divブロック内のテキストを(水平方向と垂直方向に)センタリングするにはどうすればよいですか?
-
[解決済み] CSS Flexboxで、"justify-items "と "justify-self "プロパティはなぜないのですか?
-
[解決済み】CSSを使用して、すべてのブラウザでdiv要素を垂直方向に中央に配置するにはどうすればよいですか?
-
[解決済み】display:flexを使って残りの縦幅を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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] HTMLにおける'"'エンティティの使用法
-
[解決済み] slackのチームIDやチャンネルIDを調べる最も簡単な方法は何ですか?
-
[解決済み] セレクトボックスのプレースホルダーを作成するにはどうすればよいですか?
-
[解決済み] クリアフィックスとは何ですか?
-
[解決済み] 複数のノンブレイキングスペース("nbsp")ではなく、タブスペースを使用しますか?
-
[解決済み] HTMLのid属性とname属性の違い
-
[解決済み] 静的な HTML ページにファビコンを追加する
-
[解決済み] Do I use <img>, <object>, or <embed> for SVG files?
-
[解決済み] HTMLのdiv要素とspan要素の違いは何ですか?
-
[解決済み】大きなdivの中で画像を(縦・横)中央に配置する方法【重複あり