CSS Flex
Flex
まず、flexがレイアウトを作成するために使用するHTML構造は次のとおりです.
<div class="container">
<div class="item A">A</div>
<div class="item B">B</div>
<div class="item C">C</div>
</div>
.container=Flex Container(親).item=Flex Item(子)
親エレメントコンテナはFlexの影響を受け、設定された属性に従って子エレメントItemを配置します.
. container {
display: flex;
}
Flexはcontainerに適用される属性/itemの属性に分けられるContainerに適用される属性
⏹ Display: flex
.container {
display: flex;
/* display: inline-flex; */
}
ディスプレイをflexに適用するとcontentのサイズと同じようにwidthとheightがありますFlexには2種類の軸印があります
主軸主軸Axis
これらの項目を置く方向を軸とする
主軸に垂直な軸を交差軸CrossAxisと呼ぶ
デフォルトはrowです.
⏹ Flex-direction
中心軸の設定方法
.container {
flex-direction: row 기본값
/* flex-direction: row-reverse */
/* flex-direction: column */
/* flex-direction: column-reverse */
}
⏹ flex-warp
flexが容器に物を入れられない場合
アイテムの改行を許可するプロパティ
.container {
flex-wrap: nowrap; #기본값
/* flex-wrap: wrap; */
/* flex-wrap: wrap-reverse; */
}
🔷flex-flow
flex-flow: (flex-direction) (flex-warp)
flex-directionとflex-warpのショートカットプロパティ
.container {
flex-flow: row wrap;
/* flex-flow: (flex-direction) (flex-warp); */
}
⏹정렬: Justify-content
主軸の方向を揃える方法:
.container {
justify-content: flex-start;
justify-content: flex-end;
justify-content: center;
justify-content: space-between;
justify-content: space-around;
justify-content: space-evenly;
}
flex-start:始点を揃える
flex-end:端点を位置合わせ
センター:中央揃え(主軸に沿って)
space-then:物品間に均一な間隔を作成
space-ardon:アイテムの周囲に均一な間隔を作成
space-均一:物品間と両側の末端に均一な間隔を形成する
ソース:https://studiomeal.com/archives/1971分エンコード
(最も分かりやすい図)
⏹정렬: align-items
交差軸/垂直軸方向を揃える
❗❗❗ justify는 메인축 align은 교차축/수직축
.container {
align-items: stretch;
/* align-items: flex-start; */
/* align-items: flex-end; */
/* align-items: center; */
/* align-items: baseline; */
}
stretch:底部を垂直軸方向に引き伸ばす*(既定)
flex-start:始点、主軸が列の場合左側
flex-end:端点、主軸が列の場合右側
中心:位置合わせ
ベースライン:テキスト行でソート
⏹정렬: align-content
flex-warp:wrap;プロパティ
は、設定時にアイテムの行数が1行から2行以上に減少したときの垂直軸方向の位置合わせを決定するために使用されます..container {
flex-wrap: wrap;
align-content: stretch;
/* align-content: flex-start; */
/* align-content: flex-end; */
/* align-content: center; */
/* align-content: space-between; */
/* align-content: space-around; */
/* align-content: space-evenly; */
}
flex-start:始点を揃える
flex-end:端点を位置合わせ
センター:中央揃え(主軸に沿って)
space-then:行と行の間に統一されたギャップを作成
スペース-arbound:行と行の周囲に統一された間隔を作成
space-均一:行と行の間、および2つの端点の間に均一なギャップ
⏺ item에 적용하는 속성
⏹flex-basis
itemのデフォルトサイズを設定し、動作主軸の場合は幅を設定し、主軸の場合は高さを設定します
.item {
flex-basis: auto; /*기본값,item의 기본 크기값 */
/* flex-basis: 0; */
/* flex-basis: 25%; */
/* flex-basis: 100px; */
/* flex-basis: 5rem; */
/* flex-basis: content; */
}
flex-base:100 pxとwidth:100 pxでの差異
-flex-basis: 100px:
既存のアイテム.width < 100 pxのitemは100 pxをデフォルトサイズに設定しますが
既存のアイテム.width > 100 pxのitemは元の幅を保つ
元のサイズが大きくなると、同じように柔軟に大きくなり、100 pxに減らない
-flex-width: 100px:
既存のitem widthのサイズはどうですか.無条件に100 px
両者が同時に設定されている場合、
.item {
flex-basis: 100px;
width: 100px;
}
flex-basicを無視しwidthサイズに設定
⏹flex-grow
.item {
flex-grow: 1;
/* flex-grow: 0; */ /* 기본값 */
}
flex-grow: 0;このデフォルト値は、1に設定すると、プロジェクトは柔軟なボックスになり、元のサイズより大きい時間に空白を埋めます.
flex-growでの設定値とは、項目のwidth/flex-base以外の余白を設定値のパーセンテージで割る(ChromeDevToolsと確認)
⏹flex-shrink
flex-growとは逆に、flex-shillはflex-based値よりもアイテムを設定できる属性です.
設定値のパーセンテージよりも速く小さくなります
.item {
flex-basis: 150px;
flex-shrink: 1; /* 기본값 */
}
デフォルトは0です.flex-shillを0に設定すると、プロジェクトのサイズはflex-basicより小さくなりません.したがって、固定幅のcolomnを作成するのは簡単です.
🔷flex
flex-grow、flex-schrip、flex-basesのサムネイル属性
.item {
flex: 3;
/* flex-grow: 3; flex-shrink: 3; flex-basis: 0%; */
flex: 1 2 auto;
/* flex-grow: 1; flex-shrink: 2; flex-basis: auto; */
flex: 1 200px;
/* flex-grow: 1; flex-shrink: 1; flex-basis: 200px; */
}
여백의 비율보다 영역자체 container 자체를 설정하는 비율로 분할하고 싶다면 flex-basis:0; 으로 하면 된다
⏹align-self
垂直軸上の物品は、それぞれの方向に並べることができる
.item {
align-self: auto;
/* align-self: stretch; */
/* align-self: flex-start; */
/* align-self: flex-end; */
/* align-self: center; */
/* align-self: baseline; */
}
⏹z-index
itemのz軸位置合わせ;設定値が大きいほど上向き;デフォルト値は0;
Reference
この問題について(CSS Flex), 我々は、より多くの情報をここで見つけました https://velog.io/@selswlg/CSS-Grid-Flexテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol