Flexプロパティとは親要素のflexコンテナ内の子要素であるFlexアイテムが、Flexコンテナ内に余白が生じる場合、flex-growプロパティを使ってどのぐらいの比率で余白を埋めるか、逆に、FlexコンテナからFlexアイテムがはみ出るくらいの場合、どのFlexアイテムをどのぐらい縮めるかなどを指定します。
flexプロパティは、lex-grow、flex-shrink、flex-basisという3つの伸縮率関連プロパティ全般を一括指定できるショートハンドです。
セレクタ {flex: 値 値 値; }
</style>
.flex_item {
flex: 3 3 150px;/*[flex-grow] [flex-shrink] [flex-basis]の順*/
}
</style>
余白がある場合、flexアイテムが他のflexアイテムと比較してどのくらいの大きさ(相対値)にするか、伸長率(flex grow factor)を指定します。
FlexコンテナがFlexアイテムを格納しても余りがある場合、指定されたプロパティに従い、自動的に伸びて余白を埋めます。
数値が大きいほど伸長率が大きくなります。通常1,2,3,... など整数で値を指定します。負の値は指定できません。省略した場合は 1 になります。
セレクタ {flex-grow: 値; }
</style>
.flex_item {
flex-grow: 3;
}
</style>
スポンサーリンク
flexコンテナ内にflexアイテムが入りきらない場合、flexアイテムが他のアイテムと比較してどのくらい縮まるか、相対値として圧縮率(flex shrink factor)を指定します。
数値が大きいほど幅が狭くなります。通常1,2,3,... など整数で値を指定します。省略した場合は 1 になります。負の値は指定できません。
セレクタ {flex-shrink: 値; }
</style>
.flex_item {
flex-shrink: 2;
}
</style>
flexアイテムの主軸方向サイズ(最初のメインとなるサイズ)の初期値 を指定します。
幅(width)と高さ(height)のプロパティの形式で値に入力します。
セレクタ {flex-basis: 値; }
</style>
.flex_item {
flex-basis: 50px;
}
</style>
以下のサンプルではflexコンテナの中に4つのflexアイテムを配置させて、flex-growの値を1~4をそれぞれ指定し該当flexアイテムの大きさがどのように変化するかを検証してみます。
まず以下のように、flexコンテナにwidthとflex-flow:横配置(row)と折り返し無し(nowrap)を簡単に指定しました。
[CSS] flexコンテナ
</style>
.flex_container {
width:600px;
display:flex;
flex-flow:row nowrap;
}
</style>
まず以下のように、flexアイテムにwidthとflex-flow:横配置(row)と折り返し無し(nowrap)を簡単に指定しました。
[CSS] flexアイテム
</style>
div{
height:30px;
flex-basis:100px;
}
.flex_grow0{
flex-grow:0;
background-color:#25b404;/*A*/
}
.flex_grow1 {
flex-grow:1;
background-color:#ffcc00;/*B*/
}
.flex_grow2 {
flex-grow: 2;
background-color:#085ffe;/*C*/
}
.flex_grow3 {
flex-grow: 3;
background-color:#eb02fa;/*D*/
}
</style>
基本ベースとなるサイズ(flex-basis)を100pxに指定して、flex-growの値を「0」にした場合、以下のように4つのflexアイテムの大きさは均等に100pxとなり、flexコンテナの大きさ(600px)から右側に200pxの余白が出来ちゃいます。
[HTML] flex-grow:0;
<div class="flex_container"> <div class="flex_grow0">A</div> <div class="flex_grow0">B</div> <div class="flex_grow0">C</div> <div class="flex_grow0">D</div> </div>
基本ベースとなるサイズ(flex-basis)を100pxに指定し、4つのflexアイテム全てにflex-growの値を「1」にした場合、以下のように4つのflexアイテムの大きさは均等に150px(flexコンテナサイズ600pxを4に割る)となり、4つのflexアイテムが右側の余白を均等に埋めています。
[HTML] flex-grow:1;
<div class="flex_container"> <div class="flex_grow1">A</div> <div class="flex_grow1">B</div> <div class="flex_grow1">C</div> <div class="flex_grow1">D</div> </div>
基本ベースとなるサイズ(flex-basis)を100pxに指定し、flex-growの値を「1」から「4」までそれぞれ4つのflexアイテムに指定した場合、大きさもその比率に合わせて配列されflexコンテナ内の余白を埋めていきます。
[HTML] flex-grow:1;~4;
<div class="flex_container"> <div class="flex_grow0">A</div> <div class="flex_grow1">B</div> <div class="flex_grow2">C</div> <div class="flex_grow3">D</div> </div>
スポンサーリンク
スポンサーリンク
Category
BILLION WALLET Copyright©All rights reserved