フレックスレイアウトで最後の要素のmargin-rightが効かない場合の対処法
フレックスボックスレイアウトにおいて最終要素の margin-right が効かない場合は justify-content プロパティの影響が考えられる。justify-content: space-between あるいは justify-content: space-around を設定している場合は、最終要素の margin-right は無視される。
この問題に対処する 1 つの方法は、コンテナに追加のプレースホルダー要素を追加して最後の要素にし、それを透明または非表示にすることです。たとえば、次のようになります。
HTML:
<div class="container">
<div class="item">Item 1</div>
<div class="item">Item 2</div>
<div class="item">Item 3</div>
<div class="placeholder"></div>
</div>
ネイティブの日本語で言い換えると
.container {
display: flex;
justify-content: space-between;
}
.item {
margin-right: 10px;
}
.placeholder {
visibility: hidden;
}
上記の例では、余白をブレークしない要素を最後に配置し、placeholderクラスを追加することで、margin-rightの効かない現象を回避しています。
もう1つの方法として、margin-right ではなく、margin-leftを使うという方法があります。最後の要素のmargin-rightをmargin-leftに変更すれば同様の効果が得られます。
ネイティブに日本語で言い換えると、
<div class="container">
<div class="item">Item 1</div>
<div class="item">Item 2</div>
<div class="item last-item">Item 3</div>
</div>
ネイティブの日本語で言い換えてください。1 つのオプションだけで結構です: CSS:
.container {
display: flex;
justify-content: space-between;
}
.item {
margin-right: 10px;
}
.last-item {
margin-left: 10px;
margin-right: 0;
}
最後の要素にのみ margin-right を 0 に設定し、margin-left を同じ値に設定すれば margin-right が効かない問題を回避できます。