max-width
속성의 이해
max-width
속성은 요소의 최대 너비, 즉 최대한의 가로 크기를 지정합니다.
요소의 콘텐츠나 스타일에 의해 너비가 커지더라도, 최대 너비인 max-width
값을 초과하여 커지지 않도록 제한할 수 있습니다.
이 크기의 기준은 기본적으로 콘텐츠 영역의 너비입니다.
그러나, 요소의 크기를 계산할 때 크기의 기준을 설정하는 box-sizing
이 border-box
로 설정되어 있다면 테두리 영역까지의 너비가 기준이 됩니다.
형식 구문
예제
다음의 예제들은 max-width
속성이 요소의 최대 너비를 설정하는 방식을 잘 보여줍니다.
요소의 너비가 지정되지 않은 경우
이 예제에서는 두 개의 <p>
요소가 사용됩니다.
첫 번째는 max-width
가 지정되지 않았고,
두 번째는 비교를 위해 max-width
가 200px
로 지정되었습니다.
max-width가 지정되지 않았습니다.
max-width가 200px로 지정되었습니다.
설명
이처럼 max-width
는 요소의 최대 너비를 설정하여 콘텐츠나 스타일에 의해 너비가 최대 너비보다 커지는 것을 방지합니다.
요소의 너비가 지정되었을 경우
이 예제에서는 세 개의 <button>
요소가 사용됩니다.
첫 번째는 width: 100px
로 지정된 Button-A
이고,
두 번째는 width: 250px
로 지정된 Button-B
입니다.
두 요소 모두 max-width
가 200px
로 지정되어 있습니다.
세 번째는 비교를 위해 width: 100px
이 지정되었지만, max-width
가 지정되지 않은 Button-C
입니다.
부연설명
width
속성은 요소의 너비, 즉 가로 크기를 지정합니다.
[max-width가 200px로 지정]
width: 100px로 지정(width 100px이 적용됨)
width: 250px로 지정(max-width 200px이 적용됨)
[max-width가 지정되지 않음]
비교를 위해 width: 100px로 지정(width 100px이 적용됨)
설명
- 첫 번째
Button-A
는width: 100px
이 지정되었지만,max-width: 200px
보다 작기 때문에width
로 지정한 너비인200px
을 가집니다. - 두 번째
Button-B
는width: 250px
이 지정되어 있으며, 최대 너비인max-width: 200px
보다 크므로max-width
값인200px
이 적용됩니다. - 세 번째
Button-C
는max-width
가 지정되지 않았기 때문에width
로 지정한100px
이 적용됩니다.
width
와 min-width
와의 관계
max-width
가 min-width
보다 작은 경우
min-width: 250px이 적용됨
구문
값
max-width
속성은 다양한 형태의 값을 사용할 수 있습니다.
이를 설명과 예제로 정리하면 다음과 같습니다.
<길이>
단위 값
길이 단위의 값은 항상 양수입니다. (음수 값은 유효하지 않습니다.)
상대적 <길이>
단위
CSS rem과 em 단위 – 올바른 이해와 사용 방법을 참조하세요.
절대적 <길이>
단위
예제
콘텐츠의 너비가 max-width로 지정한 너비보다 작으면 콘텐츠의 크기가 적용됨
콘텐츠의 너비가 max-width로 지정한 너비보다 크면 max-width가 적용됨
<퍼센트(%)>
단위 값
부모 요소의 너비에 대한 백분율로 정의합니다.
예제
none
값
초깃값입니다.
요소에 최대 너비를 지정하지 않습니다.
max-content
값
max-width
속성에서 max-content
값은 콘텐츠의 최대 너비에 맞춰 요소의 최대 너비를 설정합니다.
즉, 요소의 최대 너비는 콘텐츠가 온전히 차지할 수 있는 시점의 최대 너비로 설정됩니다.
max-content
는 그 콘텐츠가 차지하는 최적의 충분한 너비만큼 요소의 크기를 맞추는 역할을 합니다.
예제를 통해 살펴보겠습니다.
max-width의 max-content
max-width의 max-content 값의 이해
max-width의 max-content 값은 그 콘텐츠가 차지하는 최적의 충분한 너비만큼 요소의 크기를 맞추는 역할
주의할 점
위 예제에서 적용된 모습을 보면 알 수 있듯이, max-content
는 해당 요소의 콘텐츠 길이만을 고려하여 요소의 최대 너비를 설정합니다. 부모 요소의 너비나 레이아웃 제약 조건은 고려하지 않습니다.
만약 해당 요소의 max-content
값으로 구현되는 콘텐츠의 너비가 부모 요소의 너비보다 클 경우에는 오버플로(overflow, 경계를 넘어섬)가 발생하여 콘텐츠가 부모 요소의 경계를 넘어설 수 있습니다.
min-content
값
max-width
속성에서 min-content
값은 요소의 콘텐츠가 차지할 수 있는 최적의 최소 너비에 맞춰 요소의 최대 너비를 설정합니다.
min-content
는 요소의 인라인 콘텐츠가 줄바꿈 없이 차지할 수 있는 시점의 가장 작은 너비를 의미합니다.
즉, 텍스트는 가능한 모든 단어를 끊지 않고 한 줄로 최소화된 길이로 설정되며, 이미지나 기타 콘텐츠는 더 작게 줄어들 수 없는 크기로 설정됩니다.
예제를 통해 살펴보겠습니다.
max-width의 min-content
max-width의 min-content 값의 이해
codingeverybody{} 모든 사람을 위한 코딩 학습서입니다.
fit-content
값
max-width
속성에서 fit-content
값은 부모 요소의 너비나 레이아웃 제약을 고려하여
요소의 최대 너비를 min-content
와 max-content
사이의 적합한 값으로 설정합니다.
min-content
보다 작아질 수 없고,max-content
보다 커질 수 없으며,- 콘텐츠가 부모 요소의 경계를 넘지 않도록 부모 요소의 너비를 초과하지 않습니다.
예제를 통해 살펴보겠습니다.
max-width의 fit-content
max-width의 fit-content 값의 이해
부모 요소의 너비나 레이아웃 제약을 고려하여 min-content와 max-content 사이의 적합한 값으로 설정합니다.
주의할 점
display
가 inline
(대체되지 않은 인라인 요소, non-replaced inline elements)일 경우와 table rows, row groups인 요소에서는 width
속성과 마찬가지로 max-width
속성이 적용되지 않습니다.
max-width: 10px;
은 적용되지 않습니다. 자신 요소의 보여지는 콘텐츠의 너비가 적용됩니다.
형식 정의
초깃값 | none |
---|---|
적용 요소 | display 가 inline (대체되지 않은 인라인 요소, non-replaced inline elements)일 경우와 table rows, row groups인 요소를 제외한 모든 요소 |
상속 | 아니오 |
애니메이션 | <길이> 단위 값, <퍼센트(%)> 단위 값, calc() 로 계산된 값 |
브라우저 호환성
속성과 값 |
데스크탑 Chrome
|
데스크탑데스크탑 Edge
|
데스크탑 Firefox
|
Safari
|
---|---|---|---|---|
max-width
|
1 | 12 | 1 | 1 |
none
|
1 | 12 | 1 | 1 |
max-content
|
46 | 79 | 66 | 11 |
min-content
|
46 | 79 | 66 | 11 |
fit-content
|
46 | 79 | 94 | 11 |
명세서
명세서 사양 | |
---|---|
max-width
|
CSS Box Sizing Module Level 3 #max-size-properties |