# [[Flexbox|Flexbox]] ## πŸ“Œ Brief Summary Flexbox(Flexible Box Layout)λŠ” μ»¨ν…Œμ΄λ„ˆ λ‚΄μ˜ μ•„μ΄ν…œλ“€μ„ μ •λ ¬ν•˜κ³  곡간을 효율적으둜 λΆ„λ°°ν•˜κΈ° μœ„ν•΄ κ³ μ•ˆλœ 1차원(row λ˜λŠ” column) λ ˆμ΄μ•„μ›ƒ λͺ¨λ“ˆμž…λ‹ˆλ‹€ [1, 2]. μ•„μ΄ν…œμ˜ 크기가 λΆˆλΆ„λͺ…ν•˜κ±°λ‚˜ 동적일 λ•Œλ„ κ°€μš© 곡간에 맞좰 μ•„μ΄ν…œμ˜ λ„ˆλΉ„, 높이, μˆœμ„œλ₯Ό μœ μ—°ν•˜κ²Œ μ‘°μ •ν•  수 μžˆμ–΄ λ°˜μ‘ν˜• μ›Ή λ””μžμΈμ„ μ‰½κ²Œ κ΅¬ν˜„ν•  수 μžˆμŠ΅λ‹ˆλ‹€ [1, 3, 4]. 주둜 λ‚΄λΉ„κ²Œμ΄μ…˜ λ°”, 쀑앙 μ •λ ¬ μš”μ†Œ λ“± μ†Œκ·œλͺ¨ UI μ»΄ν¬λ„ŒνŠΈμ˜ μ •λ ¬κ³Ό 곡간 배뢄에 νƒμ›”ν•œ μ„±λŠ₯을 λ°œνœ˜ν•©λ‹ˆλ‹€ [5-7]. ## πŸ“– Core Content **μ£Όμš” κ°œλ… 및 μΆ•(Axis)** * Flexbox λ ˆμ΄μ•„μ›ƒμ€ λΆ€λͺ¨ μš”μ†ŒμΈ 'Flex μ»¨ν…Œμ΄λ„ˆ(Flex Container)'와 κ·Έ 직계 μžμ‹ μš”μ†ŒμΈ 'Flex μ•„μ΄ν…œ(Flex Items)'으둜 κ΅¬μ„±λ©λ‹ˆλ‹€ [8, 9]. * 기쑴의 λΈ”λ‘μ΄λ‚˜ 인라인 λ ˆμ΄μ•„μ›ƒκ³Ό 달리 λ°©ν–₯성에 ꡬ애받지 μ•ŠμœΌλ©°(direction-agnostic), `flex-direction`에 μ˜ν•΄ κ²°μ •λ˜λŠ” μ£ΌμΆ•(Main axis)κ³Ό 이에 수직인 ꡐ차좕(Cross axis)을 κΈ°μ€€μœΌλ‘œ μ•„μ΄ν…œλ“€μ΄ λ°°μΉ˜λ©λ‹ˆλ‹€ [5, 10, 11]. **Flex Container (λΆ€λͺ¨ μš”μ†Œ) μ£Όμš” 속성** * **`display: flex` / `inline-flex`**: μš”μ†Œλ₯Ό Flex μ»¨ν…Œμ΄λ„ˆλ‘œ μ •μ˜ν•˜μ—¬ μžμ‹ μš”μ†Œλ“€μ—κ²Œ Flex μ»¨ν…μŠ€νŠΈλ₯Ό ν™œμ„±ν™”ν•©λ‹ˆλ‹€ [9, 12]. * **`flex-direction`**: 주좕을 μ„€μ •ν•˜μ—¬ μ•„μ΄ν…œμ΄ λ°°μΉ˜λ˜λŠ” λ°©ν–₯(row, column, row-reverse, column-reverse)을 κ²°μ •ν•©λ‹ˆλ‹€ [11-13]. * **`flex-wrap`**: μ•„μ΄ν…œλ“€μ΄ ν•œ 쀄에 λ“€μ–΄κ°€μ§€ μ•Šμ„ λ•Œ μ—¬λŸ¬ μ€„λ‘œ λ°”κΏˆ(wrap) μ²˜λ¦¬ν• μ§€λ₯Ό μ œμ–΄ν•˜μ—¬ λ°˜μ‘ν˜• λ ˆμ΄μ•„μ›ƒμ„ λ•μŠ΅λ‹ˆλ‹€ [13-15]. * **`justify-content`**: 주좕을 따라 μ—¬λΆ„ 곡간을 λΆ„λ°°ν•˜κ³  μ•„μ΄ν…œμ„ μ •λ ¬ν•©λ‹ˆλ‹€ (예: `flex-start`, `center`, `space-between`) [16-18]. * **`align-items` & `align-content`**: `align-items`λŠ” ꡐ차좕을 κΈ°μ€€μœΌλ‘œ ν˜„μž¬ μ€„μ˜ μ•„μ΄ν…œλ“€μ„ μ •λ ¬ν•˜λ©°, `align-content`λŠ” μ—¬λŸ¬ μ€„λ‘œ λž˜ν•‘λœ μƒν™©μ—μ„œ μ—¬λΆ„ 곡간이 μžˆμ„ λ•Œ 쀄(lines) 자체λ₯Ό μ •λ ¬ν•©λ‹ˆλ‹€ [19, 20]. * **`gap`**: Flex μ•„μ΄ν…œ μ‚¬μ΄μ˜ μ—¬λ°±(곡간)을 λͺ…μ‹œμ μœΌλ‘œ μ œμ–΄ν•©λ‹ˆλ‹€ [21]. **Flex Items (μžμ‹ μš”μ†Œ) μ£Όμš” 속성** * **`flex-grow` & `flex-shrink`**: μ»¨ν…Œμ΄λ„ˆ λ‚΄μ˜ λ‚¨λŠ” 곡간을 μ°¨μ§€ν•˜κΈ° μœ„ν•΄ νŒ½μ°½ν•˜κ±°λ‚˜, 곡간이 λΆ€μ‘±ν•  λ•Œ μˆ˜μΆ•ν•˜λŠ” λΉ„μœ¨μ„ μ •μ˜ν•©λ‹ˆλ‹€ [22, 23]. * **`flex-basis`**: 남은 곡간이 λΆ„λ°°λ˜κΈ° μ „ μ•„μ΄ν…œμ˜ κΈ°λ³Έ 크기λ₯Ό μ„€μ •ν•©λ‹ˆλ‹€ [23]. * **`flex`**: `flex-grow`, `flex-shrink`, `flex-basis`λ₯Ό ν•œ λ²ˆμ— μ„€μ •ν•˜λŠ” 단좕 μ†μ„±μœΌλ‘œ, κ°œλ³„ 속성을 직접 μ„€μ •ν•˜κΈ°λ³΄λ‹€ 이 단좕 μ†μ„±μ˜ μ‚¬μš©μ΄ ꢌμž₯λ©λ‹ˆλ‹€ [24, 25]. * **`order`**: HTML μ†ŒμŠ€ μˆœμ„œλ₯Ό λ³€κ²½ν•˜μ§€ μ•Šκ³ λ„ μ‹œκ°μ μœΌλ‘œ λ‚˜νƒ€λ‚˜λŠ” μ•„μ΄ν…œμ˜ 배치 μˆœμ„œλ₯Ό λ³€κ²½ν•  수 μžˆμ–΄, λ°˜μ‘ν˜• λ””μžμΈ μ‹œ ν™”λ©΄ 크기에 λ”°λ₯Έ μš”μ†Œ μˆœμ„œ μž¬λ°°μΉ˜μ— μœ μš©ν•©λ‹ˆλ‹€ [22, 26]. **[[CSS Grid|CSS Grid]]μ™€μ˜ 비ꡐ 및 μ‹€μ „ 섀계 μ „λž΅** * FlexboxλŠ” μ½˜ν…μΈ  크기λ₯Ό κΈ°μ€€μœΌλ‘œ μœ μ—°ν•˜κ²Œ 곡간을 λΆ„λ°°ν•˜λŠ” 'μ½˜ν…μΈ  μœ„μ£Ό(content out)'의 1차원 λ ˆμ΄μ•„μ›ƒμ— μ΄μƒμ μž…λ‹ˆλ‹€ [2, 27]. * ν–‰κ³Ό 열을 λ™μ‹œμ— μ œμ–΄ν•΄μ•Ό ν•˜λŠ” 2μ°¨μ›μ˜ λ³΅μž‘ν•œ λ ˆμ΄μ•„μ›ƒ(전체 νŽ˜μ΄μ§€ ꡬ쑰 λ“±)은 'λ ˆμ΄μ•„μ›ƒ μœ„μ£Ό(layout in)'인 CSS Gridλ₯Ό μ‚¬μš©ν•˜λŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€ [28-30]. * 싀무 CSS μ•„ν‚€ν…μ²˜ μ„€κ³„μ—μ„œλŠ” νŽ˜μ΄μ§€λ‚˜ 큰 μ„Ήμ…˜μ˜ μ£Όμš” λΌˆλŒ€(Major layout)λŠ” CSS Grid둜 작고, κ·Έ μ•ˆμ˜ λ‚΄λΆ€ μ»΄ν¬λ„ŒνŠΈ 정렬은 Flexboxλ₯Ό μ‚¬μš©ν•˜λŠ” λ“± 두 μ‹œμŠ€ν…œμ„ ν•¨κ»˜ κ²°ν•©ν•˜μ—¬ ν™•μž₯μ„± 높은 λ ˆμ΄μ•„μ›ƒμ„ κ΅¬μ„±ν•˜λŠ” 것이 κ°€μž₯ νš¨μœ¨μ μž…λ‹ˆλ‹€ [7, 31]. ## πŸ”— Knowledge Connections - **Related Topics:** [[CSS Grid|CSS Grid]], λ°˜μ‘ν˜• λ””μžμΈ ([[Responsive Web Design|Responsive Web Design]]), CSS μ‹€μ „ 섀계 - **Projects/Contexts:** μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μ»΄ν¬λ„ŒνŠΈ μ•„ν‚€ν…μ²˜, λͺ¨λ°”일 μš°μ„ (Mobile-First) UI 섀계 및 λ°˜μ‘ν˜• λ„€λΉ„κ²Œμ΄μ…˜ κ΅¬ν˜„ - **Contradictions/Notes:** FlexboxλŠ” ν›Œλ₯­ν•œ μ •λ ¬ λ„κ΅¬μ΄μ§€λ§Œ, 2μ°¨μ›μ˜ λ³΅μž‘ν•œ λ ˆμ΄μ•„μ›ƒμ„ Flexbox만으둜 κ΅¬ν˜„ν•˜λ €κ³  ν•˜λ©΄ Flex μ»¨ν…Œμ΄λ„ˆλ₯Ό κ³Όλ„ν•˜κ²Œ 쀑첩(nesting)ν•΄μ•Ό ν•˜μ—¬ HTML 및 CSS 관리가 λ³΅μž‘ν•΄μ§€λŠ” 단점이 μžˆμŠ΅λ‹ˆλ‹€. μ΄λŸ¬ν•œ κ²½μš°μ—λŠ” CSS Gridλ₯Ό μ‚¬μš©ν•˜λŠ” 것이 ꢌμž₯λ©λ‹ˆλ‹€ [28, 32]. --- *Last updated: 2026-04-26*