FE/CSS

[CSS] text-overflow와 말줄임표(...) 처리 방법 정리

지금해냥 2023. 12. 12. 10:44

UI를 개발하다 보면 긴 텍스트가 요소를 넘치는 경우가 생깁니다.
이때 깔끔하게 "..." 말줄임표로 표시하려면 CSS의 text-overflow 속성을 사용합니다.

 

text-overflow란?

  • 요소 안의 텍스트가 박스(컨테이너) 너비를 초과할 때, 어떻게 보여줄지를 결정하는 속성입니다.
  • ellipsis 옵션을 사용하면 넘친 텍스트를 "..."으로 대체할 수 있습니다.

기본 사용법 (한 줄 말줄임표)

.ellipsis {
  white-space: nowrap;       /* 줄바꿈 없이 한 줄로 표시 */
  overflow: hidden;          /* 넘치는 부분 숨기기 */
  text-overflow: ellipsis;   /* 넘치는 부분을 "..."으로 표시 */
}

예시 HTML

<div class="ellipsis"> 이 텍스트는 너무 길어서 박스를 넘칠 것입니다. 말줄임표 처리합니다. </div>

 

결과:

이 텍스트는 너무 길어서...

 

여러 줄 말줄임표 (멀티라인 말줄임)

기본 text-overflow: ellipsis는 한 줄에만 적용됩니다.
여러 줄 텍스트를 말줄임표 처리하려면 약간 다른 트릭이 필요합니다.

 

예시 (2줄까지만 보여주고 말줄임)

.multiline-ellipsis {
  display: -webkit-box;       
  -webkit-line-clamp: 2;       /* 최대 2줄까지 표시 */
  -webkit-box-orient: vertical;
  overflow: hidden;            
}

예시 HTML

<div class="multiline-ellipsis">
  이 텍스트는 두 줄까지만 표시되고, 두 줄을 넘어가면 말줄임표로 처리될 것입니다. 넘치는 텍스트는 보이지 않습니다.
</div>

 

주의사항

  • white-space: nowrap을 꼭 줘야 한 줄 말줄임이 적용됩니다.
  • overflow: hidden이 있어야 text-overflow: ellipsis가 작동합니다.
  • 멀티라인 말줄임(-webkit-line-clamp)은 일부 오래된 브라우저(특히 IE)에서는 지원되지 않습니다.
  • 멀티라인을 쓰려면 display: -webkit-box와 -webkit-box-orient: vertical이 반드시 필요합니다.

Tailwind에서 사용법

<span className="whitespace-nowrap overflow-hidden text-ellipsis"> 테스트 </sapn>

- 요소의 크기지정만 잘 해주면 해당 코드로 말줄임 가능

- 툴팁으로 말줄임 내용 간단히 출력하면 사용에 용이함

 

참고 사항:

https://developer.mozilla.org/en-US/docs/Web/CSS/text-overflow

 

text-overflow - CSS: Cascading Style Sheets | MDN

The text-overflow CSS property sets how hidden overflow content is signaled to users. It can be clipped, display an ellipsis (…), or display a custom string.

developer.mozilla.org

 

LIST