最近、「inline-block」より「flex」が楽な事に気付いてしまいました。
そんなもんだから、「flex」を使って書くけど、まだ覚えられなくて毎回調べちゃうから「覚えよう!」と思ってココに書きます!
自分がよく使うものだけしか書いてないので、他にもコレ使えるよ!っていうのが有ったら、このフレックス初心者に教えて欲しいです。
ではでは、使いまわせるHTMLとCSSを下に書きます!
基本HTML1
<ul class="flex"> <li>1</li> <li>2</li> <li>3</li> </ul>
両端にイイ感じの隙間が空いたflex「space-around」
.flex { display: flex; justify-content: space-around; }
- 1
- 2
- 3
端っこがピッタリ端にくっついたflex「space-between」
.flex { display: flex; justify-content: space-between; }
- 1
- 2
- 3
真ん中でピタっとくっついたflex「center」
.flex { display: flex; justify-content: center; }
- 1
- 2
- 3
右端にピタっとくっついた右揃えのflex「flex-end」
.flex { display: flex; justify-content: flex-end; }
- 1
- 2
- 3
左端にピタっとくっついた左揃えのflex「flex-start」(デフォルト)
.flex { display: flex; justify-content: flex-start; }
- 1
- 2
- 3
要素を横並びにしたら次は、「flex-wrap」で個数を指定して折り返して
2行、3行にしていくよ!
「display: flex」だけだと1行で横幅がイイ感じにならない!
だから「flex-wrap」で1個1個の横幅を決めて折り返すよ。
基本HTMLのリストの数を増やします!
基本HTML2
<ul class="flex"> <li>1</li> <li>2</li> <li>3</li> <li>4</li> <li>5</li> <li>6</li> </ul>
2つで折り返して複数行にする
.flex { display: flex; justify-content: space-around; flex-wrap: wrap; } .flex li { display: block; width: 50%; margin: 10px 0; }
- 1
- 2
- 3
- 4
- 5
- 6
3つで折り返して複数行にする
横並びの数を決めるには、2個で折り返したい時は33.4~50までの数で
3個で折り返したい時は26~33.3までの数。
これは100%を2つに分割すると50%になって、3つに分割する時は「33.3333333333….%」になるから
割り算が得意な人は簡単に理解できちゃう。
でも、100%を3で分割したい時「33.3333333333….%」になって割り切れないし、「.33333」を書くの滅茶苦茶嫌だ。
そんな時は、CSSで計算できる「calc」を使うと良いよ!
使い方は下の通り。
.flex { display: flex; justify-content: space-around; flex-wrap: wrap; } .flex li { display: block; width: calc(100%/3); margin: 10px 0; }
- 1
- 2
- 3
- 4
- 5
- 6
3で分割するときは「calc」の計算式を使うんだけど
もう、全部計算するのめんどくさいから全部「calc」で書いちゃうと楽ちん。
4つで折り返して複数行にする
色々踏まえて4つで折り返すときは、11~25までの数字なら4つで折り返せる。
けど計算の手間を省くため「calc」を使って書いてみるよ!
.flex { display: flex; justify-content: space-around; flex-wrap: wrap; } .flex li { display: block; width: calc(100%/4); margin: 10px 0; }
2行目が2つしか数字が無いから変な感じになってる。
- 1
- 2
- 3
- 4
- 5
- 6
これで、さらに要素間に余白を入れてよくある感じにするよ!
余白を入れる場合は、100%から分割するんじゃなく余白を考えて分割しよう!
例えば3列の表を作って間に2%の余白を空ける場合は「calc(96%/3)」になる。
2列で5%の余白を空ける場合は「cac(95%/2)」になるね!
余白を空けて3列で表を作る
.flex { display: flex; justify-content: space-around; flex-wrap: wrap; } .flex li { display: block; width: calc(96%/3); margin: 10px 0; }
- 1
- 2
- 3
- 4
- 5
- 6
こんな風に「li」の数値を変更するだけで色んな表現を可能にする「flex」をぜひ使ってみてね!
僕もこのブログをコピペしながらサイト作ってるから、「flex」の使い方全然覚えられてないw
コメント