์‹ค์Šต - VEAMFLEX

primavยท2024๋…„ 8์›” 6์ผ

๋ฉ‹์‚ฌ

๋ชฉ๋ก ๋ณด๊ธฐ
8/29
post-thumbnail

๐Ÿ’ก ํ—ท๊ฐˆ๋ ธ๋˜ ์  1
์ด๋ฏธ์ง€์˜ ํฌ๊ธฐ๊ฐ€ ๋„ˆ๋ฌด ์ปค์ง

align-items: stretch๋ผ๋Š” ๊ธฐ๋ณธ ๊ฐ’ ๋•Œ๋ฌธ์— ๋†’์ด์— ๋งž์ถ”์–ด ๋Š˜์–ด๋‚˜๋Š” ๊ฒƒ์œผ๋กœ align-items: center๋ฅผ ์ง€์ •ํ•˜๋ฉด ๋†’์ด๊ฐ€ ๊ฐ€์šด๋ฐ ์ •๋ ฌ์ด ๋˜์–ด ์ž‘์•„์ง„๋‹ค.

๊ทธ ๋‹ค์Œ ๋„ˆ๋น„๋ฅผ ์ง€์ •ํ•˜๋ฉด ๋œ๋‹ค.

๐Ÿ’ก ํ—ท๊ฐˆ๋ ธ๋˜ ์  2
header์— height๋ฅผ ์คฌ๋”๋‹ˆ header-bar์™€ ๋†’์ด๊ฐ€ ์•ˆ๋งž์Œ

๋†’์ด๋ฅผ header์— ์ฃผ๋ฉด header์˜ ๋†’์ด๋Š” ๊ณ ์ •์ด๋˜๋Š”๋ฐ, header-bar๋Š” ๊ทธ ์•ˆ์˜ ์š”์†Œ๋“ค์˜ ๋†’์ด์— ๋”ฐ๋ผ ๋ณ€ํ™”ํ•œ๋‹ค.

์œ„์˜ ์‚ฌ์ง„์—์„œ๋Š” ์ œ์ผ ํฐ ์š”์†Œ์ธ ๋ฒ„๋Ÿญ์ด ์ด๋ฏธ์ง€ ์‚ฌ์ด์ฆˆ์— ๋”ฐ๋ผ height๊ฐ€ auto๋กœ ์ง€์ •๋œ ๊ฒƒ์ด๋‹ค.

๋ฒ„๋Ÿญ์ด ์‚ฌ์ด์ฆˆ๊ฐ€ ๋” ์ปธ์œผ๋ฉด header-bar์˜ ๋†’์ด๋Š” ๋” ์ปธ์„ ๊ฒƒ์ด๋‹ค!

.header {
  background-color: #111111;
}

.header-bar {
  height: 180px;
  display: flex;
  justify-content: flex-start;
  align-items: center;
  gap: 20px;
  color: #999999;
}

๐Ÿ’ก ๋ฌธ์ œ์  1
์„ ์„ hr์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋งž๋Š”์ง€

์„ ์ด๋ผ๊ณ  ๋ฌด์ž‘์ • hr์š”์†Œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๋‹ค.
hr ํƒœ๊ทธ์˜ ์˜๋ฏธ๋ฅผ ๋งŒ์กฑํ–ˆ์„ ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์œผ๋กœ ์ด ์˜ˆ์‹œ์—์„œ๋Š” ๊ฐ€์ƒ ์š”์†Œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

๐Ÿ’ก ๊ฐ€์ƒ์š”์†Œ

  • inline์š”์†Œ๋กœ ํ…์ŠคํŠธ์˜ ๊ธธ์ด๋งŒํผ ๋„ˆ๋น„๊ฐ€ ์„ค์ •๋˜๋Š” ๊ฒƒ์ด๊ณ  ๋‚ด๊ฐ€ ์ž„์˜๋กœ ๋„ˆ๋น„๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์—†๋‹ค.
  • img์š”์†Œ๋Š” ๋‹ซ๋Š” ํƒœ๊ทธ๊ฐ€ ํฌํ•จ๋˜๋ฏ€๋กœ ๊ฐ€์ƒ์š”์†Œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค.
  • content๋Š” ํ•„์ˆ˜์ด๋‹ค.

.description::before {
  content: "";
  width: 60px;
  height: 1px;
  **display: inline-block;**
  background-color: currentColor;
}

๋„ˆ๋น„์™€ ๋†’์ด๋ฅผ ์ง€์ •ํ•˜๋ ค๋ฉด ์ธ๋ผ์ธ์š”์†Œ๋ฅผ ๋ธ”๋ก ์š”์†Œ๋กœ ๋ฐ”๊ฟ”์•ผํ•œ๋‹ค.
์ด ๊ฐ€์ƒ ์š”์†Œ๋ฅผ ์ธ๋ผ์ธ ๋ธ”๋ก ์š”์†Œ๋กœ ๋ฐ”๊พผ ํ›„ ๋„ˆ๋น„์™€ ๋†’์ด๋ฅผ ์ง€์ •ํ•˜์—ฌ ์„ ์ธ ๊ฒƒ ์ฒ˜๋Ÿผ ๋ณด์ด๊ฒŒ ํ•œ๋‹ค.

๐Ÿ’ก ๋ฌธ์ œ์  2
๊ฐ€๋กœ์„ ์„ ์–ด๋–ป๊ฒŒ ์„ธ๋กœ๋กœ ๊ฐ€์šด๋ฐ ์ •๋ ฌ ํ•˜๋Š”์ง€

์œ„์˜ ์‚ฌ์ง„์€ description์ธ p์š”์†Œ์˜ baseline์— ๋งž์ถ”์–ด ์•„๋ž˜๋กœ ์ •๋ ฌ์ด ๋œ ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

๊ทธ๋ ‡๋‹ค๋ฉด ์ด ๊ฐ€๋กœ์„ ์„ ๊ฐ€์šด๋ฐ์— ์œ„์น˜ํ•˜๋„๋ก ํ•˜๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผํ• ๊นŒ?

โ—๏ธflex-items์ธ descripton์„ flex-container๋กœ ๋‹ค์‹œ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.
โ—๏ธflex-items๋ฅผ ๋‹ค์‹œ ๋ถ€๋ชจ์š”์†Œ๋กœ ๋‘๊ณ  ๊ทธ ์•ˆ์— ๊ณ„์† flex-items๋ฅผ ๋งŒ๋“ค์–ด ๊ทธ ์•ˆ์—์„œ ์žฌ๋ฐฐ์น˜ ๊ฐ€๋Šฅ!

โœ”๏ธ html
 <section class="header-bar">
   <img class="logo" src="./images/logo.png" />    
   <p class="description">Unlimited movies, TV shows, and more.</p>
   <img class="anger" src="./images/anger.png" />
 </section>
 
 โœ”๏ธ css
 .description {
  font-size: 16px;
  **display: flex;**
  **align-items: center;**
}

.description::before {
  content: "";
  width: 60px;
  height: 1px;
  display: inline-block;
  margin: 0 20px 0 30px;
  background-color: currentColor;
}

++ margin: 0 20px 0 30px ๋Œ€์‹  gap์„ ์ด์šฉํ•˜์—ฌ ์—ฌ๋ฐฑ์„ ๋‘๋Š” ๋ฐฉ๋ฒ•
โ—๏ธgap๊ณผ flex๋Š” ๋ถ€๋ชจ ์š”์†Œ์—!!!

.header-bar {
  display: flex;
  gap: 30px;
}

.description {
  display: flex;
  gap: 20px;
}

.description::before {

}

๋ ˆ์ด์•„์›ƒ

๊ณ ์ • vs ๊ฐ€๋ณ€

๊ณ ์ • (์‚ฌ์ด๋“œ ๋ฐ”)

ํ”ฝ์…€ ๋‹จ์œ„
์–ธ์ œ๋‚˜ ์ด ํฌ๊ธฐ๊ฐ€ ๊ณ ์ •๋˜๋„๋ก ๋ณด์žฅํ•˜๋Š” ๊ฒƒ

๊ฐ€๋ณ€ (๋ฉ”์ธ)

๋ช‡ ํ”ฝ์…€์ธ์ง€x, ๋ช‡ ํผ์„ผํŠธ์ธ์ง€ x
๊ณ ์ • ๊ฐ’์— ๋”ฐ๋ผ ๋ฐ”๋€œ
๊ฐ€๋ณ€ = wrapper - ๊ณ ์ •

โžก๏ธ ์‚ฌ์ด๋“œ ๋ฐ”์˜ ํฌ๊ธฐ๋Š” ๊ณ ์ • ์‹œํ‚ค๊ณ  ๋‚˜๋จธ์ง€๋งŒํผ ๋ฉ”์ธ ํ™”๋ฉด์œผ๋กœ ์ฑ„์›€
โžก๏ธ ์ฐฝ์˜ ํฌ๊ธฐ๊ฐ€ ๋ฐ”๋€Œ์–ด๋„ ์‚ฌ์ด๋“œ๋ฐ”๋Š” ๊ณ ์ •๋˜๊ณ  ๋ฉ”์ธ์˜ ํฌ๊ธฐ๋งŒ ๋ณ€ํ™”ํ•œ๋‹ค.

<div class="l_wrapper">
 	 <div class="container">
         <div class="container-main"> </div>
         <div class-"container-sidebar"> </div>
 	 </div>
</div>

 โœ”๏ธ css
 
 .container {
  	**display: flex;**
 	**align-items: flex-start;**
    gap: 24px;
  	min-height: 848px;
}

.container-main {
  flex-grow: 1;
}

.container-sidebar {
  flex-basis: 168px;
}

flex-grow

์‚ฌ์ด๋“œ ๋ฐ”์— flex-basis: 168px๋ฅผ ์ ์šฉํ•˜์—ฌ 168๋งŒํผ ์‚ฌ์ด๋“œ ๋ฐ”์˜ ๋„ˆ๋น„๋ฅผ ์ง€์ •ํ•ด์ฃผ๊ณ , ๋ฉ”์ธ์— flex-grow: 1๋ฅผ ์ฃผ๋ฉด gap, flex-basis๋ฅผ ๋บ€ l-wrapper์˜ ๋„ˆ๋น„๋ฅผ ์ „๋ถ€ ๋ฉ”์ธ ๋ฐ”์—์„œ ๊ฐ€์ ธ๊ฐˆ ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.

์ด๋ ‡๊ฒŒ ๋˜๋ฉด ์ฐฝ์˜ ํฌ๊ธฐ๊ฐ€ ์ค„์–ด๋“ค์–ด๋„ ๋ฉ”์ธ์€ ์ค„์–ด๋“  ์ฐฝ์˜ ๋ชจ๋“  ๊ฐ€์šฉ๊ณต๊ฐ„์„ ๊ฐ€์ ธ๊ฐ€๋‹ˆ๊นŒ ๋˜‘๊ฐ™์€ ๋น„์œจ์ธ ๊ฒƒ์ด๋‹ค.

โ—๏ธ flex-basis ์™€ gap๊นŒ์ง€ ๋บ€ ๋‚˜๋จธ์ง€ ๊ณต๊ฐ„์„ flex-grow๋กœ ๋‚˜๋ˆ ๊ฐ–๋Š” ๊ฒƒ
โ—๏ธl_wrapper ๋ฐ•์Šค ์•ˆ์—์„œ์˜ ๊ณต๊ฐ„ ๋ฐฐ์น˜์ž„์„ ๋ช…์‹ฌํ•˜๊ธฐ!

๋ฉ”์ธ

โœ”๏ธ ๋ฉ”์ธ ์•ˆ์— ๋“ค์–ด๊ฐ€๋Š” ์•„์ดํ…œ๋“ค

๋ฉ”์ธ์€ l_wrapper์— ์‚ฌ์ด๋“œ ๋ฐ”์˜ ๋„ˆ๋น„๋ฅผ ๋บ€ ๊ฐ€์šฉ ๊ณต๊ฐ„์˜ ์ „๋ถ€๋ฅผ ๋„ˆ๋น„๋กœ ๊ฐ€์ง„๋‹ค.

flex-wrap

์ด 6๊ฐœ๋Š”flex-container (๋ฉ”์ธ) ์•ˆ์˜ flex-item๋“ค์ด๋ฏ€๋กœ ๊ฐ€๋กœ๋กœ ์ •๋ ฌ์ด ๋˜๋Š” ๊ฒƒ์ด ๊ธฐ๋ณธ์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ถ€๋ชจ์—๊ฒŒ flex-wrap: wrap์„ ์ ์šฉํ•ด์ค€๋‹ค.

flex-shrink

์ด๋ ‡๊ฒŒ ์ง„ํ–‰ํ•˜๋ฉด ๋ฉ”์ธ์˜ ํฌ๊ธฐ๊ฐ€ ์ปค์ง€๋ฉด์„œ container์— ๊ณต๊ฐ„์ด ๋ถ€์กฑํ•ด์ง€๋ฉฐ flex-shrink: 1์ด๋ผ๋Š” flex-items์˜ ๊ธฐ๋ณธ๊ฐ’ ๋•Œ๋ฌธ์— ์‚ฌ์ด๋“œ ๋ฐ”์˜ ๋„ˆ๋น„๊ฐ€ ์ค„์–ด๋“ค๊ธฐ ์‹œ์ž‘ํ•œ๋‹ค.

(๋ฐฉ์ด ๋‚จ์œผ๋ฉด ํ‰ํ™”์˜ ์‹œ๋Œ€์ด์ง€๋งŒ ๋ฐฉ์ด ์—†์–ด์ง€๋ฉด ๋ฐฉ์„ ์ค„์—ฌ์„œ ์šฐ๊ฒจ๋„ฃ๋Š” ์„ฑ์งˆ)

๐Ÿ‘€ ํ—ท๊ฐˆ๋ ธ๋˜ ์  1
sidebar์˜ ๋„ˆ๋น„๊ฐ€ ์ง€์ •์„ ํ–ˆ๋Š”๋ฐ ์ค„์–ด๋“œ๋Š” ๊ฒƒ

์‚ฌ์ด๋“œ ๋ฐ”์— flex-shrink: 0 ์„ ์ถ”๊ฐ€ํ•˜์—ฌ ์‚ฌ์ด๋“œ ๋ฐ”์˜ ๋„ˆ๋น„๊ฐ€ ์ค„์–ด๋“ค์ง€ ์•Š๋„๋ก ํ•œ๋‹ค.
(๊ณต๊ฐ„์„ ๊ณ ์ •ํ•ด์ฃผ๋Š” ๊ฒƒ!)

โžก๏ธ ์ด๋ ‡๊ฒŒํ•˜๋ฉด ๋ฉ”์ธ์˜ ๋„ˆ๋น„๋งŒ ์กฐ์ •๋จ

flex-direction

๊ทธ ๋‹ค์Œ ํ•˜๋‚˜์˜ ์นด๋“œ๋ฅผ ๋งŒ๋“ค์—ˆ๋Š”๋ฐ, ์ด๋•Œ๋Š” ํ•˜๋‚˜์˜ ์นด๋“œ๋ฅผ ๋˜ flex-container๋กœ ์ง€์ •ํ•˜์—ฌ ์•ˆ์— ์žˆ๋Š” ์ด๋ฏธ์ง€์™€ ๊ธ€, ๋ฒ„ํŠผ ๋“ฑ์„ ์„ธ๋กœ๋กœ ์ •๋ ฌํ•˜์˜€๋‹ค.
โžก๏ธ flex-direction: column

 <div class="card-container">
     <img class="card-image" src="./images/cover002.png" />
     <div class="card-main">
         <h4 class="card-title"></h4>
         <p class="card-content"></p>
     </div>
     <button class="card-button"></button>
     </div>
 </div>
 
 โœ”๏ธ css
 
 .card-container {
  display: flex;
  flex-direction: column;
  border-radius: 16px;
  
  overflow: hidden;
  width: 320px;
}

flex-grow

๐Ÿ‘€ ํ—ท๊ฐˆ๋ ธ๋˜ ์  2
๋ฒ„ํŠผ์„ ์นด๋“œ์˜ ๋งจ ์•„๋ž˜๋กœ ์ •๋ ฌํ•˜๋Š” ๊ฒƒ

  1. card-main์— flex-grow:1์„ ์ ์šฉํ•˜์—ฌ ๋‚จ๋Š” ๊ณต๊ฐ„์„ ์ „๋ถ€ ๊ฐ–๊ฒŒ ํ•œ๋‹ค.
  2. card-container์˜ ๋งจ ๋ฐ‘์— ํŒจ๋”ฉ์„ 10px ์ค€๋‹ค.
  3. card-button์— margin: 0 auto์„ ์ ์šฉํ•˜์—ฌ ์ขŒ์šฐ๋กœ ๊ฐ€์šด๋ฐ์— ์œ„์น˜ํ•˜๋„๋ก ํ•œ๋‹ค.

โžก๏ธ ์นด๋“œ ๊ฐ€์šด๋ฐ์˜ ๋ฉ”์ธ ๋ถ€๋ถ„์ด ๋‚จ๋Š” ๊ฐ€์šฉ ๊ณต๊ฐ„์„ ๋‹ค ๊ฐ–๊ฒŒ ๋˜๋ฏ€๋กœ ๋ฉ”์ธ์˜ ๊ณต๊ฐ„์ด ์ปค์ ธ ๋ฒ„ํŠผ์€ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ์•„์˜ˆ ๋งจ ๋ฐ‘์œผ๋กœ ๊ฐ€๊ฒŒ๋œ๋‹ค.

โžก๏ธ ์ด๋•Œ ๋งจ ๋ฐ‘์˜ ๋ฒ„ํŠผ์„ ์ข€ ๋„์šฐ๊ณ  ์‹ถ๊ธฐ ๋•Œ๋ฌธ์— card-container์˜ ๋งจ ๋ฐ‘์— ํŒจ๋”ฉ์„ ์ค€ ๊ฒƒ!

.card-container {
  padding-bottom: 10px;
}

.card-main {
  padding: 20px;
  flex-grow: 1;
}

.card-button {
  width: 300px;
  height: 48px;
  **margin: 0 auto;**
}

์‚ฌ์ด๋“œ ๋ฐ”

โ—๏ธ sidebar์˜ ๋„ˆ๋น„๋ฅผ ๊ณ ์ •ํ•  ๋•Œ๋Š” ๋‘ ๊ฐ€์ง€์˜ ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค.

  • flex-basis
  • width

width

๊ณ ์ •๊ฐ’์„ ์ ์šฉํ•  ๋•Œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ width๊ฐ€ ์ง€์ •๋˜๋ฉด min-width๋Š” ์ƒ๊ฐํ•˜์ง€ ์•Š์•„๋„ ๋œ๋‹ค.

โ—๏ธmin-width๋Š” width๋ฅผ ๋”ฐ๋ผ๊ฐ€๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

๐Ÿ‘€ ํ—ท๊ฐˆ๋ ธ๋˜ ์  1
sidebar์˜ ๋„ˆ๋น„๋ฅผ flex-basis๋กœ ์ง€์ • ํ–ˆ๋Š”๋ฐ๋„ ์ค„์–ด๋“œ๋Š” ๊ฒƒ

  1. ์‚ฌ์ด๋“œ ๋ฐ”์— flex-shrink: 0
.container-main {
  flex-grow: 1;
}

.container-sidebar {
  flex-basis: 168px;
  **flex-shrink: 0;**
}
  1. ์‚ฌ์ด๋“œ ๋ฐ”์— min-width๋ฅผ ๊ณ ์ •๊ฐ’์œผ๋กœ ์„ค์ •
.container-main {
  flex-grow: 1;
}

.container-sidebar {
  width: 168px;
  **min-width: 168px;**
}
  1. ๋ฉ”์ธ์— flex-basis: 0
.container-main {
  flex-grow: 1;
  **flex-basis: 0;**
}

.container-sidebar {
  width: 168px;
}

flex-basis๋Š” 0์ด๋ฏ€๋กœ ์ตœ๋Œ€๋กœ ์ž‘๊ฒŒ ๋งŒ๋“ ๋‹ค.

โ—๏ธ ์ด๋•Œ min-width์˜ ๊ธฐ๋ณธ ๊ฐ’ ๋•Œ๋ฌธ์— ์ปจํ…์ธ ๋ฅผ ๋‹ค ๋„ฃ์„ ์ˆ˜ ์žˆ์„๋งŒํผ์œผ๋กœ ๋„ˆ๋น„๊ฐ€ ์ตœ๋Œ€๋กœ ์ž‘์•„์ง„๋‹ค.

โ—๏ธ ๋ ˆ์ด์•„์›ƒ์€ ์•ˆ์ •์ ์œผ๋กœ ์œ ์ง€๋˜์–ด์•ผ ํ•จ
๋‚ด๋ถ€ ์ปจํ…์ธ ๋กœ ์ธํ•ด ๋ ˆ์ด์•„์›ƒ์ด ๋ณ€ํ™”ํ•˜๋ฉด ์•ˆ๋œ๋‹ค!!

ex) ๋ ˆ์ด์•„์›ƒ์€ ์‹ํŒ, ๋‚ด๋ถ€ ์ปจํ…์ธ ๋Š” ๋ฐ˜์ฐฌ ๊ฐœ๋…
๋ฐ˜์ฐฌ์„ ๋” ๋‹ด๋“ , ์ ๊ฒŒ ๋‹ด๋“  ์‹ํŒ์˜ ์‚ฌ์ด์ฆˆ๋Š” ๊ณ ์ • ๋˜์–ด์•ผํ•จ

โญ๏ธ ์ž์‹์— ์˜ํ•ด ๋ถ€๋ชจ์˜ ํฌ๊ธฐ๊ฐ€ ๊ฒฐ์ •๋˜๋ฉด ์•ˆ๋˜๋Š” ๊ฒŒ ๋ ˆ์ด์•„์›ƒ โญ๏ธ

๐Ÿ‘€ ๋ฌธ์ œ์ƒํ™ฉ
๋ ˆ์ด์•„์›ƒ ์•ˆ์˜ ์ปจํ…์ธ ๊ฐ€ ๋ถ€๋ชจ ์š”์†Œ๋ณด๋‹ค ๊ธธ์–ด์„œ ๋น ์ ธ๋‚˜๊ฐˆ ๋•Œ

.container-main {
  flex-grow: 1;
  **flex-basis: 0;**
  **min-width: 0;**
}

.container-sidebar {
  width: 168px;
}

min-width๊ฐ€ ์ปจํ…์ธ ์˜ ์ตœ์†Œ ๋„ˆ๋น„ ์ด๋ฏ€๋กœ flex-basis: 0์„ ์ ์šฉํ•ด๋„ ์ปจํ…์ธ ๊ฐ€ ๊ธด ๋„ˆ๋น„๋ฅผ ๊ฐ€์ง€๋ฉด ์–ด์ฉ” ์ˆ˜ ์—†์ด ๋ถ€๋ชจ์˜ ์š”์†Œ๋ณด๋‹ค ๋„˜์น˜๊ฒŒ ๋œ๋‹ค.

์ด ๋•Œ๋Š” ๋„˜์น˜๋Š” ๋ถ€๋ถ„์— min-width:0 + flex-basis: 0 ์„ ์ ์šฉํ•œ๋‹ค.

  1. flex-grow๋Š” ๋‚จ๋Š” ๊ฐ€์šฉ ๊ณต๊ฐ„์—์„œ ๋‚˜๋ˆ ๊ฐ–๋Š” ๊ฐœ๋…์ด๋ฏ€๋กœ ๋‹ค๋ฅธ ๊ฒƒ๋“ค ๋จผ์ € ์ƒ๊ฐ

  2. flex-basis: 0 ์€ ๋„ˆ๋น„๋ฅผ ์ตœ์†Œ๋กœ ์ค„์ธ๋‹ค.
    (์ด ๋•Œ๋Š” min-width: auto๋ผ๋Š” ๊ธฐ๋ณธ ๊ฐ’ ๋•Œ๋ฌธ์— ์•„๋ฌด๋ฆฌ ๋„ˆ๋น„๋ฅผ ์ค„์—ฌ๋„ ์ปจํ…์ธ ์˜ ๋„ˆ๋น„๋ณด๋‹ค ์ค„์–ด๋“ค ์ˆ˜ ์—†๋‹ค.)

  3. min-width: 0 ์ตœ์†Œ ๋„ˆ๋น„๋ฅผ 0์œผ๋กœ ์ง€์ •ํ•ด์„œ ์ปจํ…์ธ ์˜ ๋„ˆ๋น„๋ฅผ ์‹ ๊ฒฝ ์“ฐ์ง€ ์•Š๋„๋ก ๋ฐ”๊ฟ”์ค€๋‹ค.
    โžก๏ธ ์ด๋•Œ๋Š” min-width:0 + flex-basis: 0 ๋กœ ์ธํ•ด ๋ฉ”์ธ์˜ ๋„ˆ๋น„๊ฐ€ ๊ทธ๋ƒฅ 0์ด ๋œ๋‹ค.

  4. ์ด๋ ‡๊ฒŒ ์ง„ํ–‰ํ•˜๋ฉด ๊ฐ€์šฉ ๊ณต๊ฐ„์ด ๋งŽ์ด ๋‚จ์œผ๋ฏ€๋กœ flex-grow ์†์„ฑ์œผ๋กœ ์ธํ•ด ๋‚จ์€ ๊ฐ€์šฉ ๊ณต๊ฐ„์„ ๋ฉ”์ธ์—์„œ ๊ฐ€์ ธ๊ฐ„๋‹ค.

โžก๏ธ ์ด๋Ÿฌํ•œ ๋ฐฉ์‹์œผ๋กœ ์ž์‹ ์š”์†Œ์˜ ๋„ˆ๋น„๊ฐ€ ๋ถ€๋ชจ ์š”์†Œ์˜ ๋„ˆ๋น„๋ฅผ ๋„˜๋Š” ๊ฒƒ์„ ์กฐ์ ˆํ•  ์ˆ˜ ์žˆ๋‹ค.

โ—๏ธ ๋ ˆ์ด์•„์›ƒ - ์ž์‹์— ์˜ํ•ด ๋ถ€๋ชจ์˜ ํฌ๊ธฐ๊ฐ€ ๊ฒฐ์ •๋˜๋ฉด ์•ˆ๋˜๊ธฐ ๋•Œ๋ฌธ !!!

๐Ÿ’ก ๊ฟ€ํŒ
โžก๏ธ ๊ณ ์ • ๋ถ€๋ถ„์—๋Š” width๊ฐ’ ๋‘๊ณ 
โžก๏ธ ๊ฐ€๋ณ€ ๋ถ€๋ถ„์—๋Š” width๋ฅผ ์•ˆ์จ์„œ ๊ตฌ๋ถ„ํ•˜๊ธฐ

โ—๏ธ flex-item์—์„œ๋Š” min-width๊ฐ€ ๊ต‰์žฅํžˆ ์ค‘์š”ํ•จ
โ—๏ธ ๋ ˆ์ด์•„์›ƒ์€ ๋ถ€๋ชจ์ž…์žฅ์—์„œ ์•ˆ์ •์„ฑ ํ™•๋ณดํ•ด์•ผํ•จ
โ—๏ธ ์ž์‹ --> ์•ˆ์ •์„ฑ์„ ํ™•๋ณดํ•œ ๊ฒƒ ์•ˆ์—์„œ ์ž์œ ๋กญ๊ฒŒ ๋ฐฐ์น˜



++ ๊ทธ๋Ÿฌ๋ฉด ์ด์ œ ์•„๋ž˜์˜ ์ฝ”๋“œ๋Š” ๋ ˆ์ด์•„์›ƒ(์‹ํŒ)์ด ์ž์‹ ์š”์†Œ(๋ฐ˜์ฐฌ)์— ๋”ฐ๋ผ ๋ณ€ํ™”ํ•˜๋Š” ๋ถˆ์•ˆํ•œ ์ฝ”๋“œ๋ผ๋Š” ๊ฒƒ์„ ์ธ์ง€ํ•  ์ˆ˜ ์žˆ๋‹ค!
.container-main {
  flex-grow: 1;
}

.container-sidebar {
  width: 168px;
}

๐Ÿ‘€ ์ž˜๋ชป ์ƒ๊ฐํ•œ ์ 
ul ์•ˆ์—๋Š” li๋ง๊ณ  ๋‹ค๋ฅธ ํƒœ๊ทธ๋ฅผ ๋„ฃ์—ˆ๋Š”๋ฐ,
ul ์•ˆ์—๋Š” li๋ง๊ณ  ํƒœ๊ทธ๊ฐ€ ๋“ค์–ด๊ฐ€๋ฉด ์•ˆ๋œ๋‹ค.

โœ”๏ธ before

 <ul>
      <h2>Action & Adventure</h2>
      <li></li>
      <li></li>
      <li></li>
 </ul>
  <ul>
      <h2>Dramas</h2>
      <li></li>
      <li></li>
      <li></li>
 </ul>

โœ”๏ธ after

<ul> 
  	<li>
    	<h2>Action & Adventure</h2>
  		<ul>
  			<li></li>
    		<li></li>
            <li></li>
  		</ul>
    </li>
    
    <li>
    	<h2>Dramas</h2>
  		<ul>
  			<li></li>
            <li></li>
    		<li></li>
  		</ul>
    </li>
</ul>

++ .category-list > li
category-list ์•ˆ์— ์žˆ๋Š” li์ค‘ ๋ฐ”๋กœ ์•„๋ž˜์— ์žˆ๋Š” li

๋ฒ„ํŠผ

letter-spacing์„ ์ ์šฉํ•˜๋ฉด ๊ฐ ์•ŒํŒŒ๋ฒณ์˜ ์˜ค๋ฅธ์ชฝ์— ์ ์šฉ์ด ๋œ๋‹ค.
ํ•˜์ง€๋งŒ ์ด๋ ‡๊ฒŒ ๋˜๋ฉด ๊ฐ€์šด๋ฐ ์ •๋ ฌ์„ ํ•ด๋„ ์™ผ์ชฝ์œผ๋กœ ์ ๋ ค ๋ณด์ด๋Š” ํ˜„์ƒ์ด ์ผ์–ด๋‚  ์ˆ˜ ์žˆ๋‹ค.

์ด๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด text-indent๋ฅผ letter-spacing๊ฐ’ ๋งŒํผ ๋„ฃ์–ด ๋งจ ์ฒ˜์Œ ์•ŒํŒŒ๋ฒณ์˜ ์™ผ์ชฝ์—๋„ ๊ฐ„๊ฒฉ์ด ์ƒ๊ฒจ ์ •ํ™•ํžˆ ๊ฐ€์šด๋ฐ ์ •๋ ฌ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค.

0๊ฐœ์˜ ๋Œ“๊ธ€