ONE QUESTION AT A TIME.

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

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

Flex row의 긴 pre가 flex-shrink:1인데도 넘치는 이유는 무엇인가요?

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

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

구두 답변

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

flex-shrink:1은 음의 free space를 분배할 수 있다는 뜻이지 automatic minimum을 무시한다는 뜻이 아닙니다. row가 320px이고 label basis 120px, code basis 200px이면 basis 합은 320px입니다. 그런데 code의 pre가 공백 없는 900px 줄을 갖고, code item의 min-width:auto가 non-scrollable computed overflow 조건에서 content-based minimum을 반영하면 target size가 320px 아래로 내려가지 못할 수 있습니다. 이는 shrink를 무시한 것이 아니라 min violation 뒤 경계를 적용한 결과입니다.

.code{min-width:0}은 item box가 줄어들 수 있게 하지만 pre{white-space:pre}의 줄 자체를 바꾸지 않습니다. 따라서 clientWidth는 320px이어도 scrollWidth는 900px일 수 있습니다. 원문을 보존하려면 code 영역에 overflow:auto, 읽기 폭을 우선하면 줄바꿈 정책을 둡니다. 부모 overflow:hidden만 넣는 것은 paint clipping이고 sizing 해결과 다릅니다. overflow:auto/hidden/clip의 computed value와 실제 scroll-container 여부는 target engine에서 함께 검증해야 합니다.

특히 overflow:auto를 넣었다고 곧바로 모든 엔진에서 같은 결과를 기대하면 안 됩니다. computed overflow 값, 실제로 scroll container가 되었는지, used automatic minimum이 얼마인지가 서로 다른 관찰 항목입니다. 작은 fixture에서 .code의 min-width를 auto와 0으로 바꾸고, overflow를 hidden/auto/clip으로 바꾼 뒤 computed style·clientWidth·scrollWidth·Tab focus를 함께 저장해야 합니다. box가 320px로 줄어도 900px pre를 숨겨 버리면 정보 접근성이 나빠지므로, 코드 보존이면 horizontal scrolling과 복사 동선을 설계합니다.

02

득점 포인트

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

  • shrink 분배와 automatic minimum을 서로 다른 단계로 설명합니다.
  • basis 120+200과 pre 900의 경계를 실제 상태로 추적합니다.
  • min-width:0 이후에도 clientWidth와 scrollWidth가 다를 수 있음을 말합니다.
  • computed overflow, scroll-container 여부, used min-width를 별도 관찰합니다.
03

감점 포인트

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

  • shrink 1이면 어떤 content도 부모 안으로 줄어든다고 합니다.
  • min-width:0만 넣으면 pre가 자동 줄바꿈한다고 주장합니다.
  • overflow:hidden이면 모든 엔진에서 automatic minimum이 0이라고 단정합니다.
  • declared width만 보고 flex basis와 padding·box sizing을 생략합니다.
04

더 파고들 거리

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

  • overflow:auto가 실제 scroll container가 되는 상태와 computed overflow를 어떤 DevTools 값으로 대조하나요?
  • nested flex에서 min-width:0을 어느 item 경계에 둬야 내부 code scroll이 작동하나요?

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

← 전체 질문 보기