【CSS】div要素をや左寄せ、右寄せ、中央、真ん中、ミドル、ボトムに配置するまとめ| プロサバメモ

WEBプログラミングやサーバ設定などのメモ場

【CSS】div要素をや左寄せ、右寄せ、中央、真ん中、ミドル、ボトムに配置するまとめ

2022.03.182022.03.19

div要素を真ん中やミドル、ボトムに配置する方法です。書き方を忘れがちなので以下にまとめておきます。

目次

1. はじめに

例では、横200px、縦200pxのグレーのdiv内に、テキストでhogeのみ記述されたdivを作成しました。

このhogeをCSSを使い、各場所に配置していきます。

hoge

html

<div class="box">
    <div class="">
        hoge
    </div>
</div>

css

.box {
    width: 200px;
    height: 200px;
    background: gray;
}

2. 左寄せ

単純な左寄せのみなら、以下のようなCSSはいらなかもしれませんが例としてあげておきます。

hoge

html

<div class="box">
    <div class="left">
        hoge
    </div>
</div>

css

.box {
    position: relative;
    width: 200px;
    height: 200px;
    background: gray;
}
.left {
    position: absolute;
    left: 0%;
    transform: translateX(0%);
    -webkit-transform: translateX(0%);
    -ms-transform: translateX(0%);
}

3. 中央寄せ

単純な中央寄せのみなら、以下のようなCSSはいらなかもしれませんが例としてあげておきます。

hoge

html

<div class="box">
    <div class="center">
        hoge
    </div>
</div>

css

.box {
    position: relative;
    width: 200px;
    height: 200px;
    background: gray;
}
.center {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    -webkit-transform: translateX(-50%);
    -ms-transform: translateX(-50%);
}

4. 右寄せ

単純な右寄せのみなら、以下のようなCSSはいらなかもしれませんが例としてあげておきます。

hoge

html

<div class="box">
    <div class="right">
        hoge
    </div>
</div>

css

.box {
    position: relative;
    width: 200px;
    height: 200px;
    background: gray;
}
.right {
    position: absolute;
    left: 100%;
    transform: translateX(-100%);
    -webkit-transform: translateX(-100%);
    -ms-transform: translateX(-100%);
}

5. ミドル左寄せ

ミドル(縦方向中央)の左寄せです。

hoge

html

<div class="box">
    <div class="middle_and_left">
        <div class="contents_box">
            hoge
        </div>
    </div>
</div>

css

.box {
    position: relative;
    width: 200px;
    height: 200px;
    background: gray;
}
.middle_and_left {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    -webkit-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
}

6. ミドル中央(ど真ん中はこちら)

ミドル(縦方向中央)の中央寄せです。これでhogeをど真ん中に配置することができます。

hoge

html

<div class="box">
    <div class="middle_and_center">
        hoge
    </div>
</div>

css

.box {
    position: relative;
    width: 200px;
    height: 200px;
    background: gray;
}
.middle_and_center {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%,-50%);
    -webkit-transform: translate(-50%,-50%);
    -ms-transform: translate(-50%,-50%);
}

7. ミドル右寄せ

ミドル(縦方向中央)の右寄せです。

hoge

html

<div class="box">
    <div class="middle_and_right">
        hoge
    </div>
</div>

css

.box {
    position: relative;
    width: 200px;
    height: 200px;
    background: gray;
}
.middle_and_right {
    position: absolute;
    top: 50%;
    left: 100%;
    transform: translate(-100%,-50%);
    -webkit-transform: translate(-100%,-50%);
    -ms-transform: translate(-100%,-50%);
}

8. ボトム左寄せ

ボトム(縦方向下)の左寄せです。

hoge

html

<div class="box">
    <div class="bottom_and_left">
        hoge
    </div>
</div>

css

.box {
    position: relative;
    width: 200px;
    height: 200px;
    background: gray;
}
.bottom_and_left {
    position: absolute;
    top: 100%;
    transform: translateY(-100%);
    -webkit-transform: translateY(-100%);
    -ms-transform: translateY(-100%);
}

9. ボトム中央

ボトム(縦方向下)の中央寄せです。

hoge

html

<div class="box">
    <div class="bottom_and_center">
        hoge
    </div>
</div>

css

.box {
    position: relative;
    width: 200px;
    height: 200px;
    background: gray;
}
.bottom_and_center {
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translate(-50%,-100%);
    -webkit-transform: translate(-50%,-100%);
    -ms-transform: translate(-50%,-50%);
}

10. ボトム右寄せ

ボトム(縦方向下)の右寄せです。

hoge

html

<div class="box">
    <div class="bottom_and_right">
        hoge
    </div>
</div>

css

.box {
    position: relative;
    width: 200px;
    height: 200px;
    background: gray;
}
.bottom_and_right {
    position: absolute;
    top: 100%;
    left: 100%;
    transform: translate(-100%,-100%);
    -webkit-transform: translate(-100%,-100%);
    -ms-transform: translate(-100%,-100%);
}

11. まとめ

外側の要素のpositionをrelativeに指定して、内側の要素(配置したい要素)のpositionをabsoluteに設定。

内側要素(配置したい要素)のtop,left属性を0%(左寄せ、トップ),50%(中央寄せ、ミドル),100%(右寄せ、ボトム)のうち目的の数値を指定。

top,left属性に指定した%値の逆数%値をtranslateに指定。

translateを適切に指定しないと、外側要素から内側の要素がはみ出してしまうので要注意。

translateのマイナス値は、はみ出してしまう内側要素の高さや幅分、XY軸を戻すといったイメージ。

関連記事

TOP