

そんな悩みにお答えします。
要素をブロックの上下左右中央に配置するというケースはたくさんあります。
横だけの中央揃えなら「margin:0 auto」か「text-align:center」を使っておけば大丈夫です。
ですがそこに縦がからむと「あれ、どうするんだっけ?」ってなる場合があります。
そこで今回はCSSで画像を上下左右中央配置にする方法を3つ紹介します。
<div class="container">
<img src="img/1.jpg">
</div>
目次
「display: flex;」:Flexboxでたった3行。シンプルイズベスト!
.container {
display: flex;
justify-content: center;
align-items: center;
height: 600px;
background-color: #dcdcdc;
}
「display: flex;」「justify-content: center;」「align-items: center;」のたった3行で上下左右中央配置ができてしまうFlexboxはほんと便利ですね。
現状これが一番おすすめできる方法です。
「position: absolute;」:スニペット登録にて一瞬で中央寄せ!
.container {
position: relative;
height: 600px;
background-color: #dcdcdc;
}
.container>img {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
親要素に「position: relative;」、子要素に「position: absolute;」「top: 50%;」「left: 50%;」「transform: translate(-50%, -50%);」で上下左右中央配置になります。
この方法も万能ですがコードが長くなるのがデメリットです。
でもスニペット登録をしておけばあっという間にできあがります。
ぜひコードスニペットを登録しておきましょう!
「display: grid;」:えっ、たった2行で中央寄せ!
.container {
display: grid;
place-items: center;
height: 600px;
background-color: #dcdcdc;
}
なんとCSS Gridレイアウトを使うと、たった2行で上下左右中央配置にできます。
Flexboxよりこっちを使うべき?
でも難点がひとつ。
それはIE 11に非対応ということ。
IE 11関係なしという場合はこれが一番簡単です。
まとめ:上下左右中央配置をマスターしよう
IE 11の対応が必要な場合は「display: grid;」は使えないので、現実的には「display: flex;」か「position: absolute;」を使うことになると思います。
どちらでも簡単に中央寄せが実現できます。
自由自在に使いこなしましょう。
投稿者 トシ
コメントを残す