ONE QUESTION AT A TIME.

천천히 생각하고, 분명하게.

TODAY’S QUESTION510 / 1500
웹난이도 중하핵심 답변

같은 flex-shrink인데 한 item이 더 많이 줄어드는 이유는 무엇인가요?

잠깐, 답변을 보기 전에
먼저 내 말로 설명해 볼까요?

답변과 점검 포인트 펼치기답변 접기
01

구두 답변

정의를 외우기보다, 원리와 조건을 연결해 설명해 보세요.

Flex는 flex-shrink 숫자만 비교하지 않고 flex-shrink × inner flex base size인 scaled factor로 음의 free space를 배분합니다. A base 400px, B base 100px, 두 shrink가 1이고 부족량이 100px이면 factor는 400:100입니다. A가 100×400/500=80px, B가 100×100/500=20px 줄어 최종은 A=320px, B=80px입니다.

이것은 declared width의 단순 비례가 아닙니다. flex-basis:auto이면 width 또는 content가 basis가 되고 padding·border와 box-sizing이 outer 계산에 참여합니다. B에 min-width:90px가 있으면 80px 목표가 clamp되어 B=90px로 freeze되고 A가 부족분을 더 부담합니다. shrink를 2로 올려도 B가 90px 아래로 내려가지는 않습니다. 먼저 같은 flex line인지, computed basis와 used min/max가 무엇인지 기록해야 합니다.

숫자를 적용할 때는 inner flex base size를 사용해야 합니다. padding 20px이 각 item에 있고 선언 width가 content-box라면 화면에서 보이는 outer 폭과 factor에 쓰는 inner 값이 달라질 수 있습니다. 또 B가 min-width에 걸려 90px로 freeze된 뒤의 남은 부족량은 최초 80/20 비율을 그대로 재사용하지 않고, freeze되지 않은 item만 대상으로 다시 계산합니다. 이 때문에 DevTools에서 최종 width만 읽으면 분배 과정을 복원할 수 없습니다. line, basis, used min/max를 같은 시점에 기록해야 합니다.

02

득점 포인트

이해가 드러나는 지점을 확인해 보세요.

  • scaled factor 식과 400:100, 80/20 trace를 제시합니다.
  • flex-basis:auto가 content와 main-size를 참조할 수 있음을 설명합니다.
  • min-width clamp 후 freeze와 재분배를 말합니다.
  • shrink factor와 minimum boundary가 다른 책임임을 구분합니다.
03

감점 포인트

놓치기 쉬운 조건과 오해를 짚어 보세요.

  • shrink가 같으면 같은 픽셀만큼 줄어든다고 합니다.
  • shrink 값을 키우면 모든 minimum을 무시한다고 합니다.
  • 선언된 width가 항상 flex base라고 전제합니다.
  • 다른 flex line의 item까지 한 pool로 계산합니다.
04

더 파고들 거리

하나 더 질문하며 이해의 범위를 넓혀 보세요.

  • flex:1과 flex:1 1 0의 basis 차이가 content가 다른 두 item의 결과를 어떻게 바꾸나요?
  • min violation과 max violation이 함께 있을 때 freeze 방향을 어떤 trace로 검증하나요?

득점·감점 포인트는 학습용 자기 점검 기준이며, 특정 회사의 실제 채점표가 아닙니다.

← 전체 질문 보기