[解決済み] フレックスボックスで計算にパディングを含めるようにするには?
質問
以下は2列目です。
-
最初の行 には2つの項目があります。
flex 1
に1つ、そしてflex 2
. -
2段目 には2つの項目があります。
flex 1
.
仕様書によると 1A + 1B = 2A
しかし パディング が計算に含まれる場合、以下の例のように合計が不正になります。
QUESTION
フレックスボックスの計算にパディングを含ませて、サンプルのボックスが正しく並ぶようにするには?
.Row{
display:flex;
}
.Item{
display:flex;
flex:1;
flex-direction:column;
padding:0 10px 10px 0;
}
.Item > div{
background:#7ae;
}
.Flx2{
flex:2;
}
<div class="Row">
<div class="Item">
<div>1A</div>
</div>
<div class="Item">
<div>1B</div>
</div>
<div class="Item Flx2">
<div>1C</div>
</div>
</div>
<div class="Row">
<div class="Item">
<div>2A</div>
</div>
<div class="Item">
<div>2B</div>
</div>
</div>
解決方法は?
解決策
セット
margin
の代わりに子要素に
padding
を使用します。
flex
アイテムになります。
.Row{
display:flex;
}
.Item{
display:flex;
flex:1;
flex-direction:column;
}
.Item > div{
background:#7ae;
margin:0 10px 10px 0;
}
.Flx2{
flex:2;
}
<div class="Row">
<div class="Item">
<div>1A</div>
</div>
<div class="Item">
<div>1B</div>
</div>
<div class="Item Flx2">
<div>1C</div>
</div>
</div>
<div class="Row">
<div class="Item">
<div>2A</div>
</div>
<div class="Item">
<div>2B</div>
</div>
</div>
問題点
がない状態で計算されます。
padding
. そこで
padding
を
flex
要素で期待する幅が得られません。
スペック
.
例えば、フローティングされたオートサイズのフレックスコンテナ内のフレックスアイテムに利用可能なスペースは。
- フレックスコンテナを含むブロックの幅から、フレックスコンテナのマージン、ボーダー、パディング(水平方向)を差し引いたもの。
- 縦方向は無限大
なぜパディングが計算されないのですか?仕様ではそうなっているのですが。
利用可能な
main
とcross
のスペースが必要です。flex
項目 . 各次元について、その次元のflex container
のコンテンツボックスのサイズが決まっている場合は、それを使用します。flex container
の下でサイズ調整されています。min
またはmax-content
制約がある場合、その次元の利用可能なスペースがその制約となり、そうでない場合。 フレックスコンテナのマージン、ボーダー、パディングを、その寸法でフレックスコンテナが利用できるスペースから差し引き、その値を使用します。 . この場合、値が無限になる可能性があります。
を差し引くと
padding
と
margin
を要素のサイズから計算すると、次のようになります。
1A + 1B = 2A
しかし、そうした後に、要素にパディングが追加されました。要素が増えれば増えるほど、パディングも増えます。それが幅に計算されないので、あなたの発言が偽りになってしまうのです。
関連
-
[解決済み】「選択されたファイルがありません」を変更しました。
-
[解決済み] 以下のHTMLフォームの例で、「mailto:[email protected]」とは何ですか?
-
[解決済み] divが重ならないようにするには?
-
[解決済み] textareaのresizableプロパティを無効にするにはどうしたらよいですか?
-
[解決済み] フレックスボックス 1列4点
-
[解決済み] 要素を水平方向にセンタリングする方法
-
[解決済み] フレックスボックスのアイテム間の距離を設定するためのより良い方法
-
[解決済み] CSS Flexboxで、"justify-items "と "justify-self "プロパティはなぜないのですか?
-
[解決済み] Flexbox:水平方向と垂直方向の中央揃え
-
[解決済み】jQueryでチェックボックスがチェックされているかどうかを確認するにはどうすればよいですか?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Telegramマークダウンの構文。太字 *と* イタリック?(2018年9月)
-
[解決済み】エラー。Body " の後の無効な CSS: 期待されるセレクタまたは at-rule は、4 行目の "{" でした。
-
[解決済み】スタイルシートとして解釈されるリソースがMIMEタイプtext/htmlで転送される(ウェブサーバーとは関係ないようです)。
-
js プログラミング共通のエラーです。Uncaught TypeError。XXXは関数ソリューションではありません
-
[解決済み] HTMLでSVGを使用して三日月を描画する
-
[解決済み] Favicon.icoを表示させることができません。
-
[解決済み] divが重ならないようにするには?
-
[解決済み] デフォルトで空白を選択
-
[解決済み] TD rowspan が機能しない
-
[解決済み] Add a scrollbar to a <textarea> [duplicate]