フレックスボックス レイアウトでは、フレックス項目は flex-grow に従ってサイズ変更されます。 プロパティ。各項目が占有する空き容量を指定します。ただし、コンテンツやマージンなど、フレックス項目の計算されたサイズに影響を与える可能性のある特定の要因があります。
次のコードを検討してください:
.numbers { display: flex; flex-direction: column; } .row { display: flex; flex-direction: row; flex-grow: 1; justify-content: space-between; } .button { display: flex; flex-grow: 1; justify-content: center; align-items: center; margin: 5px; border-radius: 5px; border: 1px solid gray; background: rgba(255, 255, 255, 0.2); cursor: pointer; } #number0 { flex-grow: 2; } #colon { flex-grow: 1; }
<div class="numbers"> <div class="row"> <div class="button number">
この例では、「0」ボタンの幅が 2 倍になることが予想されます他のボタンと同様に、コロンボタンの幅は半分になります。ただし、これらのボタンの配置は少しずれているようです。
この問題は、各行で使用できるスペースが次のように決定されるために発生します。ボタンの合計幅とボタンに適用されるマージン。この例では、最初の 3 行にはそれぞれ水平方向のマージンが 2 つありますが、4 番目の行には 1 つだけあります。これにより、4 行目の空き領域が他の行よりも多くなり、フレックス項目間の領域の配分に影響します。
この問題に対処するには、flex-basis の代わりに
flex-basisを使用することをお勧めします。
flex-grow.button { flex-basis: 33.33%; } #number0 { flex-basis: calc(66.67% + 10px); } * { box-sizing: border-box; }
以上がマージンは Flexbox レイアウトの Flex-Grow サイズ設定にどのように影響しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。