Home
CSS
positionで要素を中央寄せにする方法【CSS】

positionで要素を中央寄せにする方法【CSS】

公開日
2021.11.13
更新日
2022.04.02
positionで要素を中央寄せにする方法【CSS】

どうも!かけちまるです!

Webサイトをコーディングする際に要素を上下左右中央に配置することがよくあります。
方法としては、CSSのpositionプロパティとtransformプロパティを使います。

ちなみにpositionとmarginを使って中央に配置方法もあります。

この記事では、

  • ・上下左右中央寄せにする方法
  • ・上下中央寄せにする方法
  • ・左右中央寄せにする方法
  • ・どんな仕組みで中央に配置されるのか

がわかります。

上下左右中央寄せにする方法

該当要素に以下のCSSを指定すると上下左右中央寄せにすることができます。
top,leftの値を50%にしてtransform: translate(-50%,-50%);を指定してあげればOKです。
※基準となる要素にposition: relative;を忘れずに!

CSS
コピー
.box{ position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%); }

上下中央寄せにする方法

該当要素に以下のCSSを指定すると上下中央寄せにすることができます。
topの値を50%にしてtransform: translateY(-50%);を指定してあげればOKです。
※基準となる要素にposition: relative;を忘れずに!

CSS
コピー
.box{ position: absolute; top: 50%; left: 0%; transform: translateY(-50%); }

左右中央寄せにする方法

該当要素に以下のCSSを指定すると上下中央寄せにすることができます。
leftの値を50%にしてtransform: translateX(-50%);を指定してあげればOKです。
※基準となる要素にposition: relative;を忘れずに!

CSS
コピー
.box{ position: absolute; top: 0%; left: 50%; transform: translateX(-50%); }

どういう原理で中央に配置されるかというと

中央に配置される方法はわかったが、どういう原理で中央になってるか気になる人向けです。
興味ない人は飛ばしちゃって大丈夫です。

まず押さえておきたいのが以下のポイント!

ポイント
  • positionは要素の左上が基準になる決まり
  • transformtranslate%指定した場合、要素の幅に対しての相対値になる

上記のポイントを踏まえると、単にtopleft50%にすると中央に来ると思いきや要素の基準となる左上が中央に来るのです。
つまり、topleft50%にするだけだとずれちゃうんですね。

そこで、transform: translate(-50%,-50%);を指定することによって要素の半分だけ戻すことができるので中央に配置されるようになるわけなのです。

図にするとこんな感じ

要素が中央に配置される仕組み

おわり

かけちまる
かけちまる
Webエンジニアをしています。
HTML/CSS/JavaScript/jQuery/PHPができます。
WEB制作を中心に日々学びになったこと、興味が沸いたことについて初心者の方でもわかりやすいようにアウトプットしていくブログです。

関連記事

Contact Form7の入力エラー表示をCSSのみでカスタマイズ

Contact Form7の入力エラー表示をCSSのみでカスタマイズ

【GSAP】タイムラインを使えば複雑なアニメーションを実装できる

【GSAP】タイムラインを使えば複雑なアニメーションを実装できる

【基本編】JavaScriptのマウスイベントでドラッグ&ドロップ機能を実装する

【基本編】JavaScriptのマウスイベントでドラッグ&ドロップ機能を実装する

【公式あり】jQueryでスクロール量に連動してアニメーションを実装する

【公式あり】jQueryでスクロール量に連動してアニメーションを実装する

画像のみにAccess-Control-Allow-Originを設定する方法

画像のみにAccess-Control-Allow-Originを設定する方法

jQueryでheaderとfooterを共通化する【load()メソッド】

jQueryでheaderとfooterを共通化する【load()メソッド】