κ° μμλ₯Ό λͺ©μ μ λ§κ² λ°°μΉνλ κ²μ λ§ν©λλ€.

CSSλ₯Ό μ¬μ©νμ¬ λ μ΄μμμ λ§λ€ κ²½μ° μ΄λ¬ν normal flowμμ λ²μ΄λλλ‘ ν μ μμ΅λλ€. νμ§λ§ λ€μμ μμλ 보ν΅μ νλ¦λλ‘ λ§λ€μ΄μ§λ―λ‘ μ ꡬ쑰νλ HTMLλ¬Έμλ₯Ό λ§λλ κ²μ΄ μ€μν©λλ€.
λ μ΄μμμ λΌλλ₯Ό 그리λ λ¨κ³λ₯Ό λ§ν©λλ€. 'μμ΄μ΄λ‘ μ€κ³λ λͺ¨μ'μ΄λΌλ μλ―Έλ₯Ό κ°μ§λ©°, λ¨μν μ μ΄λ λνμΌλ‘ μΈν°νμ΄μ€λ₯Ό μκ°μ μΌλ‘ λ¬μ¬ νλ κ²μ λλ€.
μμ£Ό λ¨μν λ μ΄μμκ³Ό ꡬ쑰λ₯Ό 보μ¬μ£Όλ μ©λμ λλ€. μ νν¨κ³Όλ μ λλ§€μ΄μ , μ€νμΌλ§ μμλ UXλ₯Ό νλ¨νμ§ μμ΅λλ€.
μμ΄μ΄ νλ μμ κ°μ₯ ν° λͺ©μ μ νλ©΄μ μμμ κ΅¬λΆ νλ μΌμ λλ€. κ° μμμμ μ¬μ©ν μ£Όμ νκ·Έλ₯Ό λ©λͺ¨νλ νμμΌλ‘ μμ΄μ΄ νλ μμ μμ±ν©λλ€.
π νλμ½λ©μ΄λ?
λ³μλ₯Ό μ¬μ©νμ§ μκ³ , λ΄μ©μ μμ€μ½λμ λͺ¨λ νλνλ μ λ ₯νμ¬ μΆλ ₯νλ λ°©λ²μ λλ€.
CSSλ‘ νλ©΄μ ꡬλΆν λλ μμ§λΆν κ³Ό μνλΆν μ μ°¨λ‘λ‘ μ μ©νμ¬ μ½ν μΈ μ νλ¦(μ’ β μ°, μ β ν μ νλ¦)μ λ°λΌ μμ μ μ§νν©λλ€.
μμ§λΆν : νλ©΄μ μμ§μΌλ‘ ꡬλΆνμ¬ μ½ν μΈ λ₯Ό κ°λ‘λ‘ λ°°μΉν©λλ€.
μνλΆν : λΆν λ κ° μμλ₯Ό μνμΌλ‘ ꡬλΆνμ¬ μΈλ‘λ‘ λ°°μΉν©λλ€.
μνμΌλ‘ ꡬλΆλ μμμ heightμμ±μ μΆκ°νλ©΄ μ§κ΄μ μΌλ‘ ν μ μμ΅λλ€. μ΄λ 'Atomic CSSλ°©λ²λ‘ 'μ μ¬μ©ν μ μμ΅λλ€. ν΄λμ€ λͺ
μΌλ‘ 'w10, h10'κ³Ό κ°μ΄ μ§μ νκ³ CSSμμ 1:1λ‘ κ΅¬ννμ¬ μμ£Ό μμ λ¨μλ‘ CSSλ₯Ό μμ±νλ κΈ°λ²μ λ§ν©λλ€.
HTML λ¬Έμμ κΈ°λ³Έ μ€νμΌμ΄ λ μ΄μμμ λ°©ν΄νλ κ²½μ°κ° μμ΅λλ€. μ컨λ λ°μ€μ μμμ μ νν (0, 0)μμ μμνκ³ μΆμλ° <body>μμμ μ¬λ°±μ΄ μλ κ²½μ°λ, widthμ height κ³μ°μ΄ μ¬λ°±μ ν¬ν¨νμ§ μμ κ³μ°μ΄ λ²κ±°λ‘μ΄ κ²λ€μ΄ μμ΅λλ€.
μ΄λ¬ν κ²½μ° κΈ°λ³Έμ€νμΌλ§μ μ κ±°νλ CSSμ½λλ₯Ό μμ±νμ¬ λ¦¬μ μν€κ³ λμμΈνλλ‘ λ μ΄μμμ ꡬνν μ μμ΅λλ€.
/* κΈ°λ³Έ λ μ΄μμμ 리μ
νλ CSSμ½λ */
* {
box-sizing: border-box;
}
body {
margin: 0;
padding: 0;
}
λ°μ€λ₯Ό μ μ°νκ² λ리거λ μ€μ¬μ λ μ΄μμμ μ‘λ λ°©λ²μ λλ€.
flexbox μμ±λ€μ νμ©νλ©΄ μμμ μ λ ¬, μμκ° μ°¨μ§νλ 곡κ°μ μ€μ ν μ μμ΅λλ€.
μ μ ν μμΉμ μμ±μ μ§μ ν΄μ£Όμ§ μμΌλ©΄ μμλ€μ΄ μνλ λλ‘ μ λ ¬λμ§ μμ΅λλ€.
flex-itemμ΄ λμ¬μλ display:flexκ° μ€μ λ λΆλͺ¨ μμλ₯Ό flex-container λΌκ³ λΆλ¦ λλ€.
flex-containerλ‘ μ§μ λ 컨ν μ΄λμ μΌμ°¨ μμμμλ‘, λ΄λΆμμ flexboxλ‘ λ μ΄μμλλ νλ³΅μ΄ flex-item μ λλ€.
display: flex;μ μ€μ νλ©΄ κ° νλͺ© λ³ λ΄λΆ μμμ ν¬κΈ°λ‘ μ£ΌμΆμ λ°λΌ μ λ ¬λ©λλ€. λμ΄κ°μ΄ κ°μ₯ ν° νλͺ©μ λ§μΆμ΄ λλ¨Έμ§ λͺ¨λ νλͺ©λ€μ΄ λμ΄λ©λλ€.flexboxμλ μ£ΌμΆ(Main Axis)μ κ΅μ°¨μΆ(Cross Axis)κ° μμ΅λλ€. flexboxλ μ΄ λ μΆμ μ€μ νκ³ μμ§μ΄λ κ²μ΄λ―λ‘ μΆλΆν° μ΄ν΄νλ κ²μ΄ μ’μ΅λλ€.
μ£Ό μΆ(Main axis) : flex itemμ΄ λ°°μΉλκ³ μλ λ°©ν₯μΌλ‘ μ§ννλ μΆμ λλ€. μ΄ μΆμ μμκ³Ό λμ main start μ main endλΌκ³ ν©λλ€.
κ΅μ°¨μΆ (Cross axis) : flex itemμ΄ λ΄λΆμ λ°°μΉλλ λ°©ν₯μ μ§κ°μ μ΄λ£¨λ μΆμ λλ€. μ΄ μΆμ μμκ³Ό λμ cross start μ cross endλΌκ³ ν©λλ€.
μΆμ μΌμͺ½μμ μ€λ₯Έμͺ½μΌλ‘ κ°λ€κ³ νμ§ μκ³ 'μμμ 'μμ 'λμ 'μΌλ‘ κ°λ€κ³ ν©λλ€. κ° λλΌμ μΈμ΄μ λ°λΌ μμμ κ³Ό λμ μ΄ λ€λ₯΄κΈ° λλ¬Έμ λλ€. νκ΅μ΄μ κ²½μ° μ’μΈ‘μ΄ μμμ μ΄μ§λ§, μλμ΄μ κ²½μ° μ°μΈ‘μ΄ μμμ μ΄ λ©λλ€. λ μΌλ³Έμ΄μ κ°μ΄ μΈλ‘λ‘μ°λ μΈμ΄λ μ£ΌμΈ‘μ΄ μΈλ‘λ‘ μμλλ©° μμμ μ΄ μλ¨μ΄ λ©λλ€.
flex-direction : row-reverse; λ μΆμ κ°μ§λ§ μμμ μμκ° C-B-Aλ‘ λμ¬μ§λ κ²μ λ§ν©λλ€.
flex-direction : column-reverse; λ μμμ μμκ° C-B-Aλ‘ λμ¬μ§λ κ²μ λ§ν©λλ€.
* itemλ€μ΄ 컨ν
μ΄λ λ΄ itemμ μ΅λ λμ΄λ‘ μ§μ λ©λλ€.

flex : 0 1 auto; μ
λλ€. μΌμͺ½λΆν° μ€λ₯Έμͺ½μΌλ‘ μ½ν
μΈ ν¬κΈ°λ§νΌ λ°°μΉλ©λλ€. μΈκ°μ§ κ°μ κ°κ° λ°λ‘ μ§μ ν μλ μμ΅λλ€. a {flex-gorw: 0;
flex-shrink : 1;
flex-basis : auto;
}
κΈ°λ³Έκ°μ 0μ
λλ€. λΉ κ³΅κ°μ΄ μμ΄λ λμ΄λμ§ μμμ μλ―Έν©λλ€.
κ°μ 1λ‘ λ³κ²½νλ©΄ μ λ ¬ μΆ λ°©ν₯μ λΉ κ³΅κ°μ΄ μμ λ κ° μμμμλ€μ΄ μΌλ§λ λμ΄λ λ¨μ 곡κ°μ μ°¨μ§ν κ²μΈμ§ λΉμ¨μ μ νλ κ²μ
λλ€.
ν½μ°½μ§μλ μ΄ν©μμμ λΉμ¨λ‘, μμμμμ growκ° / μμ μμλ€μ growκ°μ ν© λΉμ¨λ‘ λΉ κ³΅κ°μ κ°μ Έκ°λλ€.

1λ‘ λ‘λλ€.
- widthμ flex-basisλ₯Ό λμμ μ μ©νλ κ²½μ°, flex-basisκ° μ°μ λ©λλ€.
- μ½ν μΈ κ° λ§μ μμλ°μ€κ° λμΉλ κ²½μ°, widthκ° μ νν ν¬κΈ°λ₯Ό 보μ₯νμ§ μμ΅λλ€.
- basisλ₯Ό μ¬μ©νμ§ μλλ€λ©΄, μ½ν μΈ κ° λ§μ μμλ°μ€κ° λμΉλ κ²½μ°λ₯Ό λλΉν΄ widthλμ max-widthλ₯Ό μΈ μ μμ΅λλ€.