LoginSignup
4
1

More than 3 years have passed since last update.

CSS3:align-itemsのendとflex-endとbaselineの使い分け

Posted at

こんばんは。
web制作会社就職を目指している、twitter上の「#駆け出しエンジニアとつながりたい」でおなじみの駆け出しエンジニアのひとりです。アウトプットが大事ということで、コード書く以外のアウトプット方法としてqiitaを始めてみます。間違ったこと書いていたらガッツリ怒ってください。

今回は、フレックスボックス内での子要素の下揃えで少し迷ったので、私と同じような初心者のために書いてみようと思います。
フレックスボックス内で使用するalign-itemsのflex-endとendとbaselineって似たようなイメージないですか?
調べたら全然違いました。

htmlとsassは以下の通りです。

    <!--html-->
    <div class="inner1">
        <div class="item1">1</div>
        <div class="item2">2</div>
        <div class="item3">3</div>
    </div>

    <div class="inner2">
        <div class="item1">1</div>
        <div class="item2">2</div>
        <div class="item3">3</div>
    </div>

    //以下sass
    .inner1{
        height: 500px;
        border: solid 1px;
        padding: 10px;
        display: flex;
        text-align: center;
        align-items:baseline;

        .item1{
            background-color:$orange ;

        }

        .item2{

            background-color: $green;
        }

        .item3{
            background-color: $yellow;

        }
    }

flex-end

子要素がdisplay:flex;を指定している親要素の最下部に張り付いた。
これは予想通りの動きでした。
flex-end.png

end

動きませんでした。まさかでした。
endのくせに最上部に張り付いたままでした。
ちなみに親要素のdisplay:flex;を削除しても、同様でした。
end.png

baseline

横並びになっている子要素の中の文字のベースライン(要素の最下部ではなく文字の最下部)がそろいました。これを使うとフレックスボックスの最下部(ベースライン)に引っ付くイメージを持っていましたが、文字の最下部を揃えるときに使うようです。

baseline.png

結論

フレックスボックス内での下揃えはflex-endを使おう。

4
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1