お問い合わせ・無料相談
WEBのこと 2024.01.26

【CSS】要素を上下左右「中央配置」にする3つの方法【position,flex,grid】

WRITER
Sasayama Sayaka ディレクター
Sasayama Sayaka

ディレクター。ウェブデザイン技能士(2級)/HTML5プロフェッショナル認定資格 レベル1・レベル2。

【CSS】要素を上下左右「中央配置」にする3つの方法【position,flex,grid】

cssで要素を上下左右で中央寄せにしたい時、いくつかの方法がありますね。

今回は簡単に要素を中央寄せに出来る代表的な方法を3つご紹介します。

1.positionプロパティを使用した方法

position

positionプロパティは、要素がどのように配置されるかを設定するcssプロパティです。

親要素にposition: relativeを設定し、中央寄せしたい要素に対してposition: absoluteを設定して
top、leftの位置を中央にすると中央寄せとなりますね。

【HTML】
〈div〉
 〈img src=”images/watabo.png” alt=””〉
〈/div〉

【CSS】
div{//親要素
 width: 500px;
 height: 500px;

 position: relative;

}

img{//子要素
 width: 100px;
 position: absolute;

 top:50%;//中央寄せ

 left: 50%;//中央寄せ

 transform: translate(-50%,-50%);//中央寄せ(調整)

}

2.フレックスボックスを使用した方法

フレックスボックスの基本概念

フレックスボックスは親要素の「フレックスコンテナ」に対してdisplay:flexを指定することで、
その子要素の「フレックスアイテム」に対してレイアウトを適用させることができます。
この時、「フレックスアイテム」を中央寄せにすることも可能です。

フレックスボックスを使用すると、①よりも簡単に中央寄せができます。

【HTML】
〈div〉
 〈img src=”images/watabo.png” alt=””〉
〈/div〉

【CSS】
div{//親要素
 width: 500px;
 height: 500px;
 display: flex;//フレックスボックス

 align-items: center;//上下の配置の指定(中央)

 justify-content: center;//左右の配置の指定(中央)

}

img{//子要素
 width: 100px;
}

3.グリッドレイアウトを使用した方法

グリッドレイアウトのボックス配置

グリッドレイアウトを利用すると、今回紹介する3つの方法の中で一番簡単に要素を中央配置できます。

グリッドレイアウトでは要素を格子状に並べて自由に配置することができ、
中央配置にするにはdisplay: gridを指定した「グリッドコンテナ」と呼ばれる親要素に対して
「place-content: center」を指定すると、その子要素である「グリッドアイテム」が中央配置されます。

【HTML】
〈div〉
 〈img src=”images/watabo.png” alt=””〉
〈/div〉

【CSS】
div{ //親要素
 width: 500px;
 height: 500px;
 display: grid;//グリッドレイアウト

 place-content: center;//中央配置(一括指定)

}

img{//子要素
 width: 100px;
}

最後に

ちなみに…
flexでは「place-content: center」と指定しても中央寄せとはなりません。
flexでも二行で完結できるかな、と思ったのですが……

▼こちらの記事に理由が書かれていますが、flexを使う場合は結局最短3行となってしまうようです。

一番短いコードで済ませたい場合は③のリッドレイアウトを利用する方法を使ってみてくださいね。

JOURNALが気に入ったら「いいね」してね!

Contact

ブランディング・WEB制作・運用まで、まずは一度お話を聞かせてください。 初回のご相談は無料で承っています。

お電話

0120-622835

10:00〜18:00 / 土日祝休

メールフォーム

お問い合わせはこちら