: κ°κ°μ μμλ₯Ό λͺ©μ μ λ§κ² λ°°μΉνλ κ²
: μΉ λλ μ ν리μΌμ΄μ
μ κ°λ°ν λ λ μ΄μμμ λΌλλ₯Ό 그리λ λ¨κ³
μμ΄μ΄νλ μμ λ³΄κ³ , μ΄λ€ λͺ©μ μ κ°μ§ νλ‘κ·Έλ¨μΈμ§ μ μΆν μ μλλ‘ ν΄μΌνλ€.
λͺ©μ
(Mock-up)
: μ€λ¬Ό ν¬κΈ°μ λͺ¨ν, μ€μ μ νμ΄ μλνλ λͺ¨μ΅κ³Ό λμΌνκ² HTML λ¬Έμλ₯Ό μμ±
HTML ꡬμ±νκΈ°
μ½ν
μΈ μ νλ¦μ μ’μμ μ°, μμμ μλλ‘ νλ₯Έλ€.
CSSλ‘ νλ©΄μ ꡬλΆν λλ μμ§ λΆν κ³Ό μν λΆν μ μ°¨λ‘λλ‘ μ μ©νμ¬ μ½ν
μΈ μ νλ¦μ λ°λΌ μμ
μ μ§ννλ€.
λ μ΄μμ 리μ
HTML λ¬Έμλ κΈ°λ³Έμ μΈ μ€νμΌμ κ°μ§κ³ μμ΄, λλλ‘ λ μ΄μμμ μ‘λλ° λ°©ν΄κ° λκΈ°λ νλ€.
* {
box-sizing: border-box;
}
body {
margin: 0;
padding: 0;
}
μ μ½λλ₯Ό μμ±νλ©΄ κΈ°λ³Έ μ€νμΌλ§μ μ κ±°νμ¬, λμμΈ νλλλ‘ λ μ΄μμ ꡬν κ°λ₯νλ€.
Flexboxλ‘ λ μ΄μμμ ꡬμ±νλ€λ κ²μ λ°μ€λ₯Ό μ μ°νκ² λ리거λ μ€μ¬ λ μ΄μμμ μ‘λ λ°©λ²
Flexbox μμ±λ€μ νμ©νλ©΄ μμμ μ λ ¬, μμκ° μ°¨μ§νλ κ³΅κ° μ€μ κ°λ₯
display: flex
: λΆλͺ¨ λ°μ€ μμμ μ μ©ν΄, μμ λ°μ€μ λ°©ν₯κ³Ό ν¬κΈ°λ₯Ό κ²°μ νλ λ μ΄μμ κ΅¬μ± λ°©λ²
λΆλͺ¨ μμμ μ μ©ν΄μΌνλ Flexbox μμ± (μμ μμλ€μ μ λ ¬κ³Ό κ΄λ ¨)
flex-direction
: μ λ ¬ μΆ μ νκΈ°
: λΆλͺ¨ μμμ μ€μ ν΄μ£Όλ μμ±, μμ μμλ€μ μ λ ¬ν μ λ ¬ μΆμ μ νλ€.
( μ무κ²λ μ€μ νμ§ μμΌλ©΄ κΈ°λ³Έμ μΌλ‘ κ°λ‘ μ λ ¬ )
row(κΈ°λ³Έκ°, β), column(β), row-reverse(β), column-reverse(β)
flex-wrap
: μ€ λ°κΏ μ€μ νκΈ°
: νμ μμλ€λ€μ ν¬κΈ°κ° μμ μμμ ν¬κΈ°λ₯Ό λμΌλ©΄ μλμΌλ‘ μ€ λ°κΏμ ν κ²μΈμ§ μ νλ€. ( μ€μ ν΄μ£Όμ§ μμΌλ©΄ μ€ λ°κΏμ νμ§ μλλ€. )
nowrap(κΈ°λ³Έκ°), wrap, wrap-reverse
justify-content
: μΆ μν λ°©ν₯ μ λ ¬
: μμ μμλ€μ μΆμ μν λ°©ν₯μΌλ‘ μ΄λ»κ² μ λ ¬ν κ²μΈμ§ μ νλ€.
row(κΈ°λ³Έκ°, β), column(βοΈ)
align-items
: μΆ μμ§ λ°©ν₯ μ λ ¬
: μμ μμλ€μ μΆμ μμ§ λ°©ν₯μΌλ‘ μ΄λ»κ² μ λ ¬ν κ²μΈμ§ μ νλ€.
row(κΈ°λ³Έκ°, βοΈ), column(β)
μμ μμμ μ μ©ν΄μΌνλ Flexbox μμ± (μμκ° μ°¨μ§νλ 곡κ°κ³Ό κ΄λ ¨)
flex μμ±μ κ°
grow (ν½μ°½ μ§μ)
: μμμ ν¬κΈ°κ° λμ΄λμΌ ν λ μΌλ§λ λμ΄λ κ²μΈμ§
shrink (μμΆ μ§μ)
: μμμ ν¬κΈ°κ° μ€μ΄λ€μ΄μΌ ν λ μΌλ§λ μ€μ΄λ€ κ²μΈμ§
basis (κΈ°λ³Έ ν¬κΈ°)
: λμ΄λκ³ μ€μ΄λλ κ²κ³Ό μκ΄μμ΄ μμμ κΈ°λ³Έ ν¬κΈ°λ μΌλ§μΈμ§
flex: 0 1 auto; /* κΈ°λ³Έ κ° */
flex-grow: 0;
flex-shrink: 1;
flex-basis: auto; /* flex μμ± μμ μΈ κ°μ§ κ°μ νλ²μ μ€μ ν΄μ£Όμ§ μμλ λλ€. */
- grow
: μ λ ¬μΆ λ°©ν₯μΌλ‘ λΉ κ³΅κ°μ΄ μμ λ, κ° μμ μμλ€μ΄ μΌλ§λ λμ΄λμ λ¨λ 곡κ°μ μ°¨μ§ν κ²μΈμ§ λΉμ¨μ μ νλ κ²
μμ μμμ growκ° / μμ μμλ€μ growκ°μ μ΄ν©
μ λΉμ¨λ‘ λΉ κ³΅κ°μ κ°μ Έκ°λ€.
=> ν½μ°½ μ§μμ μ λμ ν¬κΈ°κ° μλ μ΄ν©μμμ λΉμ¨λ‘ λΉ κ³΅κ°μ μ°¨μ§νλ€.
- shrink
: growμ λ°λ, μ€μ ν λΉμ¨λ§νΌ λ°μ€ ν¬κΈ°κ° μμμ§λ€.
(λΉμ¨μ΄ ν΄μλ‘ λ λ§μ΄ μ€μ΄λ λ€,shrink
μμ±λ³΄λ€ grow
μμ±μ μ¬μ©νλ κ²μ κΆμ₯ν¨)
flex-grow
μμ±μΌλ‘ λΉμ¨μ λ³κ²½ν λ, flex-shrink
μμ±μ κΈ°λ³Έκ°μΌλ‘ λ¬λ 무방νλ€.
- basis
: μμ λ°μ€κ° grow
λ shrink
μ μν΄ λμ΄λκ±°λ μ€μ΄λ€κΈ° μ μ κ°μ§λ κΈ°λ³Έ ν¬κΈ°
( basis λ‘ μ€μ λ ν¬κΈ°κ° νμ μ μ§λλ κ²μ μλλ€. )
flex-grow
μμ±μ κ°μ΄ 0μΈ κ²½μ°μλ§ flex-basis μμ±μ κ°μ΄ μ μ§
width
μ flex-basis
λ₯Ό λμμ μ μ©νλ κ²½μ°, flex-basis
κ° μ°μ μλλ€.=> html, css μ¬μ©ν΄μ μλ κ³μ°κΈ° λͺ©μ ꡬν
μ¬μ©μ μ§μ CSS μμ± μ¬μ©νκΈ° (λ³μ)
λ¬Έμ μ λ°μ μΌλ‘ μ¬μ¬μ©ν μμμ κ°μ λ΄λλ€.
μ μ© νκΈ°λ²μ μ¬μ©ν΄ μ μνκ³ (--main-color: black;)
,
var() ν¨μ (color: var(--main-color);)
λ₯Ό μ¬μ©ν΄ μ κ·Όν μ μλ€.
- κΈ°λ³Έ μ¬μ©λ²
: λ κ°μ λΆμνλ‘ μμνλ μμ±μ μ΄λ¦κ³Ό ν¨κ» μ ν¨ν CSSκ°μ΄λΌλ©΄ μ무거λ κ·Έ κ°μΌλ‘ μ§μ ν΄ μ μΈνλ€.
element {
--main-bg-color : yellow;
}
:root μμ¬ ν΄λμ€μ μ μΈν΄ HTML λ¬Έμ μ΄λμλ μ¬μ©μ μ§μ μμ±μ μ κ·Ό κ°λ₯νλλ‘ κ΅¬μ±
:root {
--main-bg-color: yellow;
}