home
twitter
ページトップへ
目次
  • 要素を中央に配置する「よく使われる」テクニックにはどのようなものがあるのか?
  • 「position: absolute」と「transform: translate()」を使ったテクニック
  • 「position: absolute」と「translate」を使ったテクニック
  • 「display: flex」を使ったテクニック
  • まとめ!
about
categories
page
archive
皇帝ペンギンブログ

2024/11/01 (更新日:2024/11/02)

【CSS】要素を中央に配置する「よく使われる」テクニック!【分かりやすい】

Categories > CSSのアニメーション編
こんばんは!初めましての方は初めまして!
しゅーた(@chibasyuta)です!

この記事ではCSSを使った要素を中央に配置する際に「よく使われる」テクニックについて解説します!丁寧にまとめていくので、興味がある方はぜひご一読ください。

頻出のデザインの割に、「なんか中央配置できないんだけど!!」となりガチなのかなと思いますので、そこら辺のお悩みをこの記事で1っ発で解決してみせます。

この記事の内容!

  • 要素を中央に配置する「よく使われる」テクニックにはどのようなものがあるのか?
  • 「position: absolute」と「transform: translate()」を使ったテクニック
  • 「position: absolute」と「translate」を使ったテクニック
  • 「display: flex」を使ったテクニック
また、下の動画でもCSSを使った要素を中央に配置する際によく使われる「テクニック」について詳しく解説しているので、一緒に実際にコードを書きながら学びたい方はこちらをどうぞ!

それでは内容へ入ります!

目次
非表示
  • 要素を中央に配置する「よく使われる」テクニックにはどのようなものがあるのか?
  • 「position: absolute」と「transform: translate()」を使ったテクニック
  • 「position: absolute」と「translate」を使ったテクニック
  • 「display: flex」を使ったテクニック
  • まとめ!

要素を中央に配置する「よく使われる」テクニックにはどのようなものがあるのか?

「要素を中央に配置する」のに「よく使われるテクニック」は下記があります!
  • 「transform: translate()」と「position: absolute」を使ったテクニック
  • 「translate」と「position: absolute」を使ったテクニック
  • 「display: flex」を使ったテクニック

これらがよく使われるテクニックになると思います。

「position: absolute」と「transform: translate()」を使ったテクニック

https://chibasyuta.org/wp-content/uploads/2024/11/transform_translate_absolute_new.mp4
<div class="container">
    <div class="box"></div>
</div>
.container {
    width: 1000px;
    height: 400px;
    margin: 100px auto;
    padding: 20px;
    background-color: #ddd;
    position: relative;
}
.box {
    width: 200px;
    height: 200px;
    background-color: skyblue;
}
.container:hover .box {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

「position: absolute」と「transform: translate()」を使ったテクニックです。

1ステップ!

「position: absolute」と「transform: translate()」を使ったテクニックの「1ステップ!」

.container:hover .box {
    position: absolute;
    top: 50%;
    left: 50%;
}

まず「position: absolute」「top: 50%;」「left: 50%;」と指定します。

すると、要素は「top: 50%;」なので「上端」から「親要素の高さの50%の距離」だけ「下へ移動した位置」にきます。

さらに、要素は「left: 50%;」は「左端」から「親要素の50%の長さ」だけ「右へ移動した位置」にきます。

※そもそも「中央に配置する要素」の「親要素」に「position: relative」などの「static」以外の指定があることが必要です。

2ステップ!

「position: absolute」と「transform: translate()」を使ったテクニックの「2ステップ!」

.container:hover .box {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

そして「transform: translate(-50%, -50%);」と指定して要素を動かして中央に持っていきます。

「translate(-50%, -50%)」なので、

「幅の半分」だけ「左」に動かして

「高さの半分」だけ「上」に動かせば「中央配置」の完成です!

「position: absolute」と「translate」を使ったテクニック

.container:hover .box {
    position: absolute;
    top: 50%;
    left: 50%;
    translate: -50% -50%;
}

「translate: -50% -50%;」と指定しても「要素の高さと幅の半分だけ動かす」というのができるので、やってること自体は上の「position: absolute」と「transform: translate()」を使ったテクニックと一緒ですね。

なのでここでは解説を省きます!

「translate」プロパティの使い方の記事はこちら!

「translate」プロパティの使い方については下記の記事で解説しています!もし気になる方はこちらからどうぞ!

【CSS】「translate」プロパティの使い方!【分かりやすい】

関連記事

「display: flex」を使ったテクニック

https://chibasyuta.org/wp-content/uploads/2024/11/display_flex_justi__ilign_center_new.mp4
<div class="container">
    <div class="box"></div>
</div>
.container {
    width: 1000px;
    height: 400px;
    margin: 100px auto;
    padding: 20px;
    background-color: #ddd;
}
.container:hover {
    display: flex;
    justify-content: center;
    align-items: center;
}
.box {
    width: 200px;
    height: 200px;
    background-color: skyblue;
}

このように「display: flex」と「justify-content: center」と「align-items: center;」を使って子要素を中央に配置するテクニックもあります。

ふむふむ。
「YouTube」で「display: flex」について解説してます!

また、「display: flex」の使い方に関してはこちらの再生リスト「CSSのフレックスボックス編」でまとめているので、もし気になる方はこちらを見てみてください!

まとめ!

「要素を中央に配置する」のに「よく使われるテクニック」は下記があります!

  • 「transform: translate()」と「position: absolute」を使ったテクニック
  • 「translate」と「position: absolute」を使ったテクニック
  • 「display: flex」を使ったテクニック
こんな感じですかね!

この記事が気に入った方は僕のTwitter(@chibasyuta)のチェックもお願いします!

また、下の動画でもCSSを使った要素を中央に配置する際によく使われる「テクニック」について詳しく解説しているので、一緒に実際にコードを書きながら学びたい方はこちらをどうぞ!

それではこんな感じでこの記事を終わります!

ではまた!

自分のロゴ!

皇帝ペンギン

全力で、書きます。
少しでもお役に立てたら幸いです。
楽しんで読んで下さい 。-_- 。
よろしくお願いします!

x(旧twitter) youtube
Categories
  • トップへ
  • ITパスポート (1)
  • programming (168)
    • CSSのアニメーション編 (26)
    • CSSのグリッドレイアウト編 (1)
    • CSSのセレクター編 (58)
    • CSSのフレックスボックス編 (1)
    • CSSのメディアクエリー編 (7)
    • CSSの基本編 (34)
    • HTMLのformタグ編 (1)
    • HTMLの基本編 (3)
    • JavaScriptの入門編 (30)
    • JavaScriptの基本編 (5)
    • Web制作をする環境を整えよう! (1)
  • Uncategorized (23)
  • VScode (1)
  • おすすめ商品! (1)
  • クラロワ (2)
  • マーケティング (17)
  • 大学生活 (7)
  • 心理学 (9)
  • 映画 (1)
  • 法学 (4)
  • 経済学 (4)
  • 読書 (7)
Pages
  • プライバシーポリシー
  • 免責事項
  • プロフィール
Archive
  • 2025年3月 (1)
  • 2025年1月 (9)
  • 2024年12月 (13)
  • 2024年11月 (5)
  • 2024年10月 (10)
  • 2024年9月 (15)
  • 2024年8月 (5)
  • 2024年7月 (6)
  • 2024年6月 (5)
  • 2024年5月 (10)
  • 2024年4月 (24)
  • 2024年3月 (11)
  • 2024年2月 (6)
  • 2024年1月 (10)
  • 2023年12月 (4)
  • 2023年11月 (3)
  • 2023年10月 (2)
  • 2023年9月 (3)
  • 2023年8月 (6)
  • 2023年7月 (3)
  • 2023年6月 (8)
  • 2023年5月 (2)
  • 2023年3月 (1)
  • 2023年2月 (1)
  • 2022年10月 (2)
  • 2022年9月 (2)
  • 2022年8月 (8)
  • 2022年7月 (2)
  • 2022年6月 (6)
  • 2022年5月 (9)
  • 2022年4月 (2)
  • 2022年2月 (4)
  • 2021年12月 (1)
  • 2021年11月 (4)
  • 2021年10月 (8)
  • 2021年9月 (14)
  • 2021年8月 (6)
  • 2021年6月 (1)
  • 2021年5月 (2)
  • 2021年4月 (1)
  • 2021年3月 (1)
  • 2021年2月 (2)
  • 2020年10月 (1)
  • 2020年7月 (1)
  • 2020年4月 (1)
  • 2020年1月 (1)
  • 2019年12月 (2)
© Copyright Syuta Chiba, 2019 All Rights Reserved.