margin,paddingを使わず要素の間に余白を作る方法

キャプチャ

上記は、li要素をd-flexで横に並べて、flex-wrapで折り返しするように指定し、それぞれの要素のwidthを50%に指定することで、2要素ごとに折り返されるようになっている。

この状態で、

border-right: 2px solid #背景の色

を、nth-child(odd)でつけると、奇数のli要素の右側に2pxの背景と同じ色のボーダーが付く。

こうすることで、li要素のwidthに影響を与えることなく、marginを指定したかのような余白をつけることができる。

通常、marginやpaddingで中心の隙間を作ろうとすると、以下のようになってしまう。(以下は、margin:0.5remをつけた場合。)

キャプチャ

li要素はwidth:50%で指定しているので、marginをつけた場合、li要素2つ+marginで幅が100%を超えてしまうため、1つ目のli要素で折り返されてしまう。

そのため、冒頭で説明したborderを使って疑似余白を設定すれば、width:50%のまま、余白が設定できる。

いいなと思ったら応援しよう!