こんばんは。
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;を指定している親要素の最下部に張り付いた。 これは予想通りの動きでした。
end
動きませんでした。まさかでした。 endのくせに最上部に張り付いたままでした。 ちなみに親要素のdisplay:flex;を削除しても、同様でした。
baseline
横並びになっている子要素の中の文字のベースライン(要素の最下部ではなく文字の最下部)がそろいました。これを使うとフレックスボックスの最下部(ベースライン)に引っ付くイメージを持っていましたが、文字の最下部を揃えるときに使うようです。