ラップされたフレックスボックスのアイテムに垂直方向の間隔を与える
2023-10-01 13:44:06
質問
最近、Flexbox を初めて使いましたが、全般的に素晴らしいものです。しかし、最近、折り返されているフレックス アイテムに縦の間隔を与えることができないような問題に遭遇しました。
を使ってみました。
align-content: space-between;
を追加しましたが、これでは何もできないようです。調べたところ、これはフレックス コンテナの高さが中に含まれる要素よりも高い場合にのみ機能するようです(正しいですか?
これを動作させるために思いつく唯一の方法は、中の要素に下マージンを与えることですが、これもまた目的を失うように思えます。
私がかなり明白な何かを見逃していることを願っています。 http://codepen.io/lordchancellor/pen/pgMEPz
また、私のコードはこちらです。
HTMLです。
<div class="container">
<div class="col-sm-12">
<h1>Flexbox Wrapping</h1>
<div class="flexContainer">
<div class="flexLabel">This is a flex label</div>
<a class="btn btn-primary">Button 1</a>
<a class="btn btn-warning">Button 2</a>
<a class="btn btn-success">Button 3</a>
</div>
</div>
</div>
CSSです。
.flexContainer {
display: flex;
flex-wrap: wrap;
align-items: center;
align-content: space-between;
justify-content: center;
}
.flexContainer .flexLabel {
flex-basis: 150px;
flex-shrink: 0;
}
EDIT - ただ、十分に伝わっているかどうか自信がないので、ここにもう少し詳細を追加します。
私の大きなプロジェクトでは、フレックスボックスを使用して一列に配置されたいくつかのブロック レベル要素があります。しかし、ユーザーが画面幅を縮小する可能性があるため、ある程度の応答性が必要です。このとき、要素を積み重ねるようにしたいのです (そのためにラップを使用しています)。しかし、要素が積み重なり始めると、間隔を空けたいところで、すべての要素が縦に接触してしまいます。
上下の余白がこれを解決する唯一の方法であるように見え始めていますが、これを実現するフレックスボックス中心の方法があるかどうか疑問に思っていました。
どのように解決するのですか?
幅を指定して強制的に折り返すと、高さを指定しなくても通常と同じように余白を使うことができます。
.flexContainer {
display: flex;
align-items: center;
flex-wrap: wrap;
justify-content: center;
background: pink;
width: 150px;
}
.flexContainer > * {
margin: 1em 0;
}
.flexContainer .flexLabel {
flex-basis: 150px;
flex-shrink: 0;
}
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css" rel="stylesheet" />
<div class="container">
<div class="col-sm-12">
<h1>Flexbox Wrapping</h1>
<div class="flexContainer">
<div class="flexLabel">This is a flex label</div>
<a class="btn btn-primary">Button 1</a>
<a class="btn btn-warning">Button 2</a>
<a class="btn btn-success">Button 3</a>
</div>
</div>
</div>
関連
-
[解決済み】divの高さを画面の残りスペースで埋めるようにする
-
[解決済み] CSSでcellpaddingとcellspacingを設定する?
-
[解決済み] フレックスボックスのアイテム間の距離を設定するためのより良い方法
-
[解決済み] CSS Flexboxで、"justify-items "と "justify-self "プロパティはなぜないのですか?
-
[解決済み] クリアフィクス」はどのような方法で使用できますか?
-
[解決済み] Flexbox:水平方向と垂直方向の中央揃え
-
[解決済み] マークダウンにおける相互参照 (名前付きアンカー)
-
[解決済み] div 内で画像を水平方向にセンタリングする
-
[解決済み] display:inline-flexとdisplay:flexの違いは何ですか?
-
[解決済み】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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 要素を水平方向にセンタリングする方法
-
[解決済み] CSSでcellpaddingとcellspacingを設定する?
-
[解決済み] How can I set the default value for an HTML <select> element?
-
[解決済み] CSSでdivのアスペクト比を維持する
-
[解決済み] インラインCSSでa:hoverを記述するには?
-
[解決済み] divブロック内のテキストを(水平方向と垂直方向に)センタリングするにはどうすればよいですか?
-
[解決済み] HTMLでBase64画像を表示する方法
-
[解決済み] hr要素の色を変更する
-
[解決済み] フレックスアイテムを右寄せにするには?
-
[解決済み] MIME-typeが原因でスタイルシートが読み込まれない