Flexbox
Flexbox
2009年には、反応型Webページを構築し、オブジェクトを簡単に組織することを目標とする新しいレイアウトシステムが発表されました.2014年以降、ほとんどのブラウザでサポートされています.現在、Webページの主なレイアウトシステムとして使用されています.
ブラウザIE 9以降ではFlexはサポートされていません.
開発ツールに表示されるflex
プロパティ
Flexboxは1次元レイアウトシステムであり、flex item
のスタック方向はmain axis
(主軸)である.
親プロパティ(コンテナ)
display values
flex
display: flex;
flow layoutに配備すると、ブロックレベルになります.
inline-flex
display: inline-flex
flow layoutに配備すると、行内レベルになります.
flex-direction:配置方向の設定
アイテムの配置軸方向のプロパティを決定します.
flex-direction:row//デフォルト
row-reverse
column
column-reverse
display: flex;
display: inline-flex
flex-wrap:改行を設定する
flex-item
プロパティは、それらを1行に配置するか、可能な領域内で複数行に分割するかを決定するために使用されます.
flex-wrap:nowrap//デフォルト
親のwidth
を超える長さがflex-item
を超える場合.
wrap
親のwidth
よりflex-item
長ければ、親は子供への包容力を変える.
wrap-reverse
改行は起こりますが、item
が上に積み上げられます.
flex-flow
flex-direction
とflex-wrap
の両方で指定できるショートカット属性.flex-flow: flex-direction flex-wrap;
と表記p>
.container {
flex-flow: row wrap;
}
justify-content : 메인축 방향 정렬
justify-content: flex-start // 기본값
出発点に品物を並べます.
flex-end
端点に品物を並べます.
center
品物を真ん中に並べます.
space-between
最初のアイテムを始点に、最後のアイテムを終点に、残りのアイテムを中央に配置します.
space-around
物品の周長に均一な間隔を形成する.
space-evenly
物の間と両端に均一な間隔を形成する.
⚠Explorerおよび一部のブラウザバージョンではサポートされていません.
下図を見ると文章を読むより理解が早い.br/>
align-items : 수직축 방향 정렬
align-items: stretch // 기본값
品物は両親height
に増加した.
baseline
ベースラインを基準として物品を並べ替える.
baseline
center
品物を真ん中に並べます.
flex-start
出発点に品物を並べます.
flex-end
端点に品物を並べます.
자식 속성(item)
flex-basis
flex-basis: auto; // 기본값
デフォルトautoは、プロジェクトのwidth値を使用します.
widthを指定しない場合は、コンテンツのサイズです.flex-basis
単位は、width
で使用可能な単位に等しい.
flex-grow
flex-grow: 0; // 기본값
flex-grow
は、物品がflex-basis
より大きいか否かを決定する属性である.0より大きい値を設定すると、元のサイズより大きくなり、空白が埋められます.物品のflex-basis
を除き、空白部分はflex-grow
に指定された数字の割合で区分される.
flex-shrink
flex-shrink: 1; // 기본값
flex-shrink
は、物品の縮小度がflex-basis
より大きい値を決定する属性である.より大きなflex-shrink
値を有する物品のサイズはより速く縮小される.
flex
flex: flex-basis flex-grow flex-shrink;
サムネイル属性.
order
order: 0; // 기본값
flex-item
配置順序のプロパティを制御します.まず低い数字、後ろに高い数字を並べます.属性値は、正の整数、ゼロの整数、および負の整数です.
단점
最大の欠点はCSSコードそのものである.flexbox
は、コードレイアウトを直感的に定義しない.flexbox CSSを読み、すべての要素がページにどのように配置されているかを理解するのは難しい.
下図のようにレイアウトを構成する場合、
flexベースのレイアウトは、
body {
min-height: 100vh;
display: flex;
flex-direction: column;
}
.container {
display: flex;
flex: 1;
}
main {
flex: 1;
padding: 0 20px;
}
nav {
flex: 0 0 180px;
padding: 0 10px;
order: -1;
}
aside {
flex: 0 0 130px;
padding: 0 10px;
}
逆にgridを使用する場合は、cssを表示し、ページに配置する方法を理解できます.
header {
grid-row: 1;
grid-column: 1 / 4;
}
.sidebar-left {
grid-row: 2;
grid-column: 1 / 2;
}
article {
grid-row: 2;
grid-column: 2 / 3;
}
.sidebar-right {
grid-row: 2;
grid-column: 3 / 4;
}
footer {
grid-row: 3;
grid-column: 1 / 4;
}
flexbox
は、ページ全体のレイアウトのために行われていません.列と行の要素を配置するために1次元レイアウトを設計します.2011年、CSS grid
は複数行の複数列レイアウトの処理を提案された.
참고
1分コード-今回はCSS Flexについて学びましょう
https://studiomeal.com/archives/197
恐竜のモダンCSSを翻訳
https://d0gf00t.tistory.com/19
https://d2.naver.com/helloworld/8540176
Reference
この問題について(Flexbox), 我々は、より多くの情報をここで見つけました https://velog.io/@gga4638/Flexboxテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol