Grid Layout
1. κ°μ
νλ μΉ λ μ΄μμμ λ΄λΉνκ³ μλ κ°μ₯ ν° νλ‘νΌν°κ° λ°λ‘ Gridμ΄λ€. λμ κ²½μ° μ 체μ μΈ νμ Gridλ‘ μ‘κ³ μμ λΆλΆ λΆλΆμ Flexλ₯Ό μ¬μ©νκ³ μλ€. μ¬μ€ μ§κΈμ μμ λΆλΆλ Flex보λ€λ Gridλ₯Ό μ¬μ©νλ νΈμ΄λ€.
μ΄μ μ μ¬λ¦° Flexbox Layoutμ ν λ°©ν₯ λ μ΄μμ μμ€ν μ΄λΌλ©΄ Grid Layoutμ λ λ°©ν₯ λ μ΄μμ μμ€ν μ΄λ€. λ°λΌμ Flexλ³΄λ€ λ 볡μ‘μ μΈ λ μ΄μμ ννμ΄ κ°λ₯νλ€.
2. μ©μ΄ μ 리

그리λ 컨ν μ΄λ(Grid Container):
display: gridλ₯Ό μ μ©νλ, Gridμ μ 체 μμμ΄λ€. Grid 컨ν μ΄λ μμ μμλ€μ΄ Grid κ·μΉμ μν₯μ λ°μ μ λ ¬λλ€.그리λ μμ΄ν (Grid Item): Grid 컨ν μ΄λμ μμ μμλ€μ΄λ€. 그리λ μμ΄ν λ€μ΄ Grid κ·μΉμ μν΄ λ°°μΉλλ€.
그리λ νΈλ(Grid Track): Gridμ ν(Row) λλ μ΄(Column)
그리λ μ (Grid Cell): Gridμ ν μΉΈμ κ°λ₯΄ν¨λ€.
<div>κ°μ μ€μ html μμλ Grid μμ΄ν μ΄κ³ , μ΄λ° Grid μμ΄ν νλκ° λ€μ΄κ°λ 'κ°μμ μΉΈ(ν)'μ΄ Grid μ μ΄λ€.그리λ λΌμΈ(Grid Line): Grid μ μ ꡬλΆνλ μ μ΄λ€.
그리λ λ²νΈ(Grid Number): Grid λΌμΈμ κ° λ²νΈμ΄λ€.
그리λ κ°(Grid Gap): Grid μ μ¬μ΄μ κ°κ²©μ΄λ€.
그리λ μμ(Grid Area): Grid λΌμΈμΌλ‘ λλ¬μΈμΈ μ¬κ°ν μμμΌλ‘, 그리λ μ μ μ§ν©μ΄λ€.
3. Usage
Grid κ·μΉμ μ μ©νκ³ μ νλ μμλ€μ λΆλͺ¨μ display: grid;λ₯Ό μ μ©μ νλ©΄ λλ€.
display: inline-gridλ μλ€. μμ΄ν
μ λ°°μΉμ κ΄λ ¨μ΄ μλ€κ° 보λ€λ, 컨ν
μ΄λκ° μ£Όλ³ μμλ€κ³Ό μ΄λ»κ² μ΄μ°λ¬μ§μ§ κ²°μ νλ κ°μ΄λ€. inline-gridλ inline-blockμ²λΌ λμνλ€.
4. 그리λ νν μ μ
4-1. grid-template-columns
grid-template-columns νλ‘νΌν°λ grid columnsμ λ°°μΉλ₯Ό μ§μ νλλ° μ¬μ©νλ€.
μμ μ½λλ grid-containerλ‘ κ°μΈμ Έ μλ μμμμλ€μ 그리λλ‘ λ°°μΉνκ³ columnμ 3μ΄λ‘ λ§λ€κ³ 첫λ²μ§Έ column λΆν° 100px, 200px, 300pxλ§νΌμ ν¬κΈ°λ‘ λ§λ€κ² λ€λ μλ―Έμ΄λ€.
λ λ€λ₯Έ μ¬μ©λ²μ 보μ.
μμ μ½λμμ frμ fractionμΌλ‘ μ«μ λΉμ¨λλ‘ κ·Έλ¦¬λ νΈλμ ν¬κΈ°λ₯Ό λλλ€. μ¦ 1fr 2fr 2frμ 1:2:2 λΉμ€μΌ 3κ°μ columnμ λ§λ€κ² λ€λ μλ―Έμ΄λ€.
μμ μ½λμ κ°μ΄ pxκ³Ό frλ₯Ό ν¨κ» μ¬μ©ν μ μλ€. %λ‘λ ν¬κΈ°λ₯Ό μ§μ ν μ μλ€.

4-2. grid-template-rows
grid-template-columnsμ μ΄(column)μ λ°°μΉλΌλ©΄ grid-template-rowsμ ν(row)μ λ°°μΉμ΄λ€. κ·Έ μΈμ λ΄μ©μ κ°λ€.

4-3. repeat ν¨μ
grid-template-columns, grid-template-rowsμ νλ‘νΌν°κ°μΌλ‘ μ¬μ©λλ repeatλ λ°λ³΅λλ κ°μ μλμΌλ‘ μ²λ¦¬ν μ μλ ν¨μμ΄λ€.
μ¬μ©λ² grid-template-columns: repeat(λ°λ³΅νμ, λ°λ³΅κ°)
μμ λ μ½λλ κ°μ κ²°κ³Όλ₯Ό λνλΈλ€.
4-4. minmax ν¨μ
μ΅μκ°κ³Ό μ΅λκ°μ μ§μ ν μ μλ ν¨μμ΄λ€.
minmax(100px, auto)μ μλ―Έλ 'μ΅μν 100px, μ΅λλ μλμΌλ‘(auto) λμ΄λκ² νλ€.'μ΄λ€. μ무리 λ΄μ©μ μμ΄ μ λλΌλ μ΅μνμ λμ΄ 100pxμ ν보λκ³ , λ΄μ©μ΄ λ§μ 100pxμ΄ λμ΄κ°λ©΄ μμμ λμ΄λλλ‘ νλ€.

4-5. auto-fill, auto-fit
auto-fillκ³Ό auto-fitμ columnμ κ°μλ₯Ό 미리 μ νμ§ μκ³ μ€μ λ λλΉκ° νμ©νλ ν μ΅λν μ
μ μ±μ΄λ€.
auto-fillκ³Ό auto-fitμ μ°¨μ΄λ λ¨λ 곡κ°μ μ±μ°μ§ μλλ μ±μ°λμ΄λ€. auto-fillμ λ¨μ 곡κ°μ μ±μ°μ§ μκ³ auto-fitμ λ¨μ 곡κ°μ μ±μ΄λ€.

λ΄κ° μκ°ν κ²°κ³Όκ° λ€λ₯΄λ€. μλ fillμ΄κΈ° λλ¬Έμ μμλ κ²°κ³Όμ΄μ§λ§ μλλ fitμΌλ‘ μ ν΄λ 2λ²μ§Έ μ΄μ΄ λͺ¨λ λλΉλ₯Ό μ°¨μ§νμ§ μλλ€. μ€κΉ?
5. κ°κ²©λ§λ€κΈ°
그리λ μ
μ¬μ΄μ κ°κ²©μ μ€μ μ νκΈ° μν΄μλ row-gap, column-gap νλ‘νΌν°λ₯Ό μ¬μ©νλ€. κ°κ° row(μ΄), column(ν)μ κ°κ²©μ μ§μ νλ©° gap νλ‘νΌν°λ row-gapκ³Ό column-gapλ₯Ό μ§μ ν μ μλ shorthandμ΄λ€.
μ¬μ©λ² gap: row-gap, column-gap row-gapκ³Ό column-gapμ΄ κ°μΌλ©΄ νλλ§ μ μ΄λ μ΄κ³Ό νμ λͺ¨λ μ μ©μ΄ λλ€.

6. 그리λ ννλ₯Ό μλμΌλ‘ μ μ
grid-template-columnsλλ grid-template-rowsμ ν΅μ λ₯Ό λ²μ΄λ μμΉμ μλ νΈλμ ν¬κΈ°λ₯Ό μ§μ νλ μμ±μ΄λ€.
μλμ μ½λλ₯Ό 보μ.
ν΄λΉ cssλ 3λ²μ§Έ μ΄κΉμ§λ§ νΈλ μ ν¬κΈ°λ₯Ό μ§μ νκ³ μλ€. νμ§λ§ λ§μ½ 4λ²μ§Έ μ΄μμ μ΄μ΄ μκΈΈ κ²½μ° μ§μ ν΄μ£Όμ§ μμ λ€λ₯Έ ν¬κΈ°μ νΈλ μ΄ μκΈΈ μ μλ€. μ΄λ 4λ²μ§Έ μ΄μμ μ΄μ΄ λ°λ‘ ν΅μ λ₯Ό λ²μ΄λ μμΉμ μλ νΈλ μ΄λ€. μ¦, μ°λ¦¬κ° μμ±νκ³ μ νλ columnκ³Ό rowμ κ°μλ₯Ό λͺ¨λ₯Ό λ grid-template-columnsλλ grid-template-rows νλ‘νΌν°λ₯Ό μ¬μ©νλ©΄ λλ€. μ΄λ λͺ¨λ columnκ³Ό rowλ ν΅μ λ₯Ό λ²μ΄λ μμΉμ μλ νΈλ μ΄λΌκ³ ν μ μλ€.

7. grid-column, grid-row
grid-column, grid-row νλ‘νΌν°λ Grid μμ΄ν
μ μ μ©νλ νλ‘νΌν°λ‘, κ° μ
μ μμμ μ§μ νλ€. Gridμλ μλμ κ°μ λ²νΈκ° λ§€κ²¨μ Έ μλ€.

μ΄λ¬ν Grid λ²νΈλ₯Ό μ¬μ©νμ¬ μμμ μ§μ νλ€.
μ¬μ©λ² grid-column: <μμλ²νΈ> / <λλ²νΈ>
μ¬μ©λ² grid-row: <μμλ²νΈ> / <λλ²νΈ>
λλ λͺ κ°μ μ μ μ°¨μ§νκ² ν κ²μ΄μ§λ₯Ό μ§μ ν μλ μλ€.
μ¬μ©λ² grid-column: <μμλ²νΈ> / span<μμΉν μμ μ
μ>
μ¬μ©λ² grid-row: <μμλ²νΈ> / span<μμΉν μμ μ
μ>

8. μΈλ‘ λ°©ν₯ μ λ ¬
8-1. align-items
align-itemsλ 컨ν
μ΄λμ μ μ©νλ νλ‘νΌν°λ‘ μμ΄ν
λ€μ μΈλ‘(columnμΆ) λ°©ν₯μΌλ‘ μ λ ¬νλ€.


8-2. align-content
align-contentλ 컨ν
μ΄λμ μ μ©νλ νλ‘νΌν°λ‘ Gird μμ΄ν
λ€μ λμ΄λ₯Ό λͺ¨λ ν©ν κ°μ΄ Grid 컨ν
μ΄λμ λμ΄λ³΄λ€ μμ λ Grid μμ΄ν
λ€μ ν΅μ§Έλ‘ μ λ ¬νλ€.


8-3. align-self
align-selfλ Grid μμ΄ν
μ μ μ©νλ νλ‘νΌν°λ‘ ν΄λΉ μμ΄ν
μ μΈλ‘(columnμΆ) λ°©ν₯μΌλ‘ μ λ ¬νλ€.

9. κ°λ‘ λ°©ν₯ μ λ ¬
9-1. justify-items
justify-items νλ‘νΌν°λ Gird 컨ν
μ΄λμ μ μ©νλ©° μμ΄ν
λ€μ κ°λ‘(rowμΆ) λ°©ν₯μΌλ‘ μ λ ¬ν λ μ¬μ©νλ€.

9-2. justify-content
justify-content νλ‘νΌν°λ Grid 컨ν
μ΄λμ μ μ©νλ©° Grid μμ΄ν
λ€μ λλΉλ₯Ό λͺ¨λ ν©ν κ°μ΄ Grid 컨ν
μ΄λμ λλΉλ³΄λ€ μμ λ Grid μμ΄ν
λ€μ ν΅μ§Έλ‘ μ λ ¬νλ€.


9-3. justify-self
justify-selfλ Grid μμ΄ν
μ μ μ©νλ νλ‘νΌν°λ‘ ν΄λΉ μμ΄ν
μ κ°λ‘(rowμΆ) λ°©ν₯μΌλ‘ μ λ ¬νλ€.

10. μ λ ¬ shorthand
10-1. place-content
align-contentμ justify-contentλ₯Ό κ°μ΄ μΈ μ μλ shorthandμ΄λ€.
μ¬μ©λ² place-content: <align-content> <justify-content>
νλμ κ°λ§ μ°λ©΄ λ νλ‘νΌν° λͺ¨λμ μ μ©λλ€.
10-2. place-slef
align-slefμ justify-slefλ₯Ό κ°μ΄ μΈ μ μλ shorthandμ΄λ€.
μ¬μ©λ² place-slef: <align-slef> <justify-slef>
νλμ κ°λ§ μ°λ©΄ λ νλ‘νΌν° λͺ¨λμ μ μ©λλ€.
11. order
κ° Grid μμ΄ν λ€μ μκ°μ λμ΄ μμλ₯Ό κ²°μ νλ μμ±μ΄λ€.
μ«μκ°μ΄ λ€μ΄κ°λ©΄, μμ μ«μμΌ μλ‘ λ¨Όμ λ°°μΉλλ€. "μκ°μ " μμμΌ λΏ HTML μ체μ ꡬ쑰λ₯Ό λ°κΎΈμ§ μλ€.
12. z-index
ZμΆ μ λ ¬μ ν μ μλ νλ‘νΌν°μ΄λ€. μ«μκ° ν΄ μλ‘ μλ‘ μ¬λΌκ°λ€.

13. Conclusion
λ΄κ° μλ°μ€ν¬λ¦½νΈμ μΉ νλ μμν¬/λΌμ΄λΈλ¬λ¦¬ μ€ Reactλ₯Ό μ¬λνλ κ²κ³Ό κ°μ΄ CSSμμλ Gridλ₯Ό κ°μ₯ λ§μ΄ μ¬λνλ€. κ·Έ λ§νΌ μ¬μ©νλ λΉμ€μ΄ λ§κ³ μ μ©νκ² μ¬μ©νκ³ μλ€λ λ»μ΄λ€. νμ€ν Gridλ₯Ό μ²μ 곡λΆν λ νλνλ μ΄ν΄νλ €κ³ λ§μ μκ°μ 보λλλ° μ§κΈμ Flexμ ν¨κ» μλ‘ λΉκ΅νλ©° 곡λΆνλ μ½κ² μ΄ν΄κ° λμλ€. λ€λ§ μ£Όλ‘ μ¬μ©νμ§ μλ νλ‘νΌν°κ° μλλ° λ°λ‘
justify-contentμalign-contentμ΄λ€. μ΄ λ μμ±μ Flexμμλ λ§μ΄ μ¬μ©νμ§λ§ Gridμμλ ν λ²λ μ¬μ©νμ§ μμλ νλ‘νΌν°μΈκ±° κ°λ€. κ·Έλλ μ΄λ€ νΉμ§μ κ°μ§κ³ μλμ§ μ§κ³ λμ΄κ°μ. κ·Έλ¦¬κ³ μ°μ°νκ²..auto-fill,auto-fitμ΄ λ΄ μκ°λλ‘, μμνλλ‘ μλνμ§ μμμ μ‘°κΈμ μμΈνλ€... ν΄κ²°μ± μ μ°Ύμλ΄μΌκ² λ€.π
μ°Έκ³
The CSS Grid Enchiridion μ΄λ²μμΌλ§λ‘ CSS Gridλ₯Ό μ΅ν보μ Understanding CSS Grid: Grid Lines
π 2022-07-25
Last updated