CSSで要素やテキストを上下や左右を中央揃えにするシンプルな3つの方法
こんにちは。ディーライズ代表のYUKIです。
CSSで左右を中央揃えにする方法として、「text-align: center;」や「margin: 0 auto;」はご存知かと思いますが、今回は上下の縦方向を真ん中に揃える方法をご紹介いたします。
色んな方法があるのですが、当スタジオでよく使用するのは3つだけのシンプルな方法ですので、ご参考にしてください。

transformを利用した方法は良く知られていますが、その際、上下だけでなく左右もtransformを使用して、要素の幅が狭められてしまうということが発生してしまいます。今回ご紹介するのは、本当はあまり教えたくない当スタジオ独自の方法です!
1.テキストの場合
.wrap {
position: relative;
}
.box {
left: 0;
position: absolute;
right: 0;
text-align: center;
top: 50%;
transform: translateY(-50%);
}
2.要素の場合
.wrap {
position: relative;
}
.box {
left: 0;
margin: auto;
position: absolute;
right: 0;
top: 50%;
transform: translateY(-50%);
}
3.display: flex;を使用
.box {
align-items: center;
display: flex;
justify-content: center;
}
これさえ覚えておけば、CSSで上下や左右を中央揃えにするのに困らないです。スマホ時には左右のみ中央揃えにするという場合など、レスポンシブWebデザインにも対応できます。ご参考になれば幸いです。