京都のNPO法人 CRA(クリエイター育成協会)が発信するブログです。Web業界、Webデザイナー・Webプログラマー・Webマーケターの育成。

お問い合わせ
075-353-3711 受付時間:10:00〜18:00(土日・祝日除く)
menu close

CRAブログ- Web/IT・教育・福祉業界の情報を、スタッフ&インターン生が配信中

flexについて 2

2015年12月02日工藤
Pocket

【こちらの記事は、約4分程でお読みいただけます。】

こんにちは、水曜日のブログ担当の工藤です。

前回http://cra.jp/blog/skill/1511_flex/に引き続き、flexプロパティの基本的な使い方について解説していきたいと思います。

flex-wrap

flexコンテナに入る要素を操作するプロパティです。


nowrap

初期値です。コンテナの中身を折り返しません。

<div class="flex">
  <div class="flex-item">1</div>
  <div class="flex-item">2</div>
  <div class="flex-item">3</div>
  <div class="flex-item">4</div>
  <div class="flex-item">5</div>
</div>
.flex{
  display: flex;
  width: 110px;
  height: 100px;
  background: #eee;
  flex-wrap: nowrap;
}

.flex-item{
  width: 30px;
  height: 30px;
  border: 1px solid #4cd;
  background: #0ef;
  border-radius: 6px;
  text-align: center;
}

fl11

例)コンテナアイテムの横幅が30pxが5つあり、コンテナの幅が110pxで40px分、横幅が足りないばあい、コンテナアイテム内の横幅を縮小して強引に詰め込みます。


wrap

上記のように収まらなかった場合、折り返し表示させます。

.flex{
  display: flex;
  width: 110px;
  height: 100px;
  background: #eee;
  flex-wrap: wrap;
}

.flex-item{
  width: 30px;
  height: 30px;
  border: 1px solid #4cd;
  background: #0ef;
  border-radius: 6px;
  text-align: center;
}

fl2


wrap-reverse

逆順で折り返します。

fl13

flex-direction: row-reverse;を使えば、列毎で逆順にしてくれます。

fl14

flex-flow

[flex-direction]と[flex-wrap]をまとめて指定してくれます。

.flex{
  flex-flow: wrap column;
}

align-items

justify-contentは横の並びの設定にたいし、align-itemsは縦の並びに対しての設定を指定します。


flex-start

.flex{
  align-items: flex-start;
}

fl15
上揃えになります。


flex-end

.flex{
  align-items: flex-end;
}

fl16

下揃えになります。


center

.flex{
  align-items: center;
}

fl17

真ん中揃えになります。


baseline

.flex{
  align-items: baseline;
}

ベースラインを揃えます。

fl18


stretch

.flex{
  align-items: stretch;
}

コンテンツに高さが指定してない場合、高さを親の高さいっぱいまで広げます。

fl19

order

flexのコンテンツの順番をコントロールします。
なにも設定しない場合0で、1は後ろに行き、数字が低いほど前に並び数字が高いほど後ろに行きます。
z-indexと同じ使い方です。

	 	 
.flex-item:nth-child(1){	 	 
 order: 3;	 	 
}	 	 
.flex-item:nth-child(2){	 	 
 order: 1;	 	 
}	 	 

fl21

終わりに

応用で、flexの中のコンテンツはmarginで簡単に中央に行くことが出来ます。
margin:auto;を使った場合、上下左右の中央に言ってくれます。
いつも、positionと上下左右を0にして真ん中にして、中央に寄せる方法を使っていたのが嘘のように楽になります。

	 	 
.flex-item:nth-child(1){	 	 
 margin: auto;	 	 
}	 	 

fl22

	 	 
.flex-item:nth-child(1){	 	 
 margin-left: auto;	 	 
 margin-top: auto;	 	 
 margin-bottom: auto;	 	 
}	 	 

fl23
以上、簡単ではありますがflexの解説になります。他にも色々な複雑なレイアウトが組めるので積極的に試してみてください。

Pocket

CRAが運営する就労移行支援事業所 ワークサポートセンターはこちら