텍스트 트렁케이팅

작성일:2024.11.24|조회수:1

텍스트 트렁케이팅

박스의 높이를 제한해 두면, 내부 콘텐츠가 많아질수록 넘침(overflow)은 피할 수 없다. 이를 가장 단순하게 해결하는 방법은 overflow: hidden을 사용하는 것이다. 그러나 이 방식은 시각적으로 어색한 문제가 있다. 텍스트가 중간에서 뚝 잘린 듯한 인상을 주고, 사용자는 해당 영역에 추가 텍스트가 존재하는지조차 인지할 수 없다.

이러한 문제를 해결하기 위해 사용하는 기법이 텍스트 트렁케이팅(text truncating)이다. 트렁케이팅은 제한된 공간을 초과한 텍스트를 숨기되, 말줄임표(..., ellipsis)를 통해 더 많은 내용이 존재한다는 힌트를 제공한다. 이는 단순한 레이아웃 제어를 넘어, 사용자 경험 측면에서도 의미 있는 선택이다.

단일 줄 텍스트 트렁케이팅

단일 줄 텍스트의 경우 CSS만으로 비교적 간단하게 처리할 수 있다. 핵심은 텍스트를 한 줄로 고정하고, 넘치는 영역을 숨긴 뒤, 말줄임표를 적용하는 것이다.

CSS
.text-truncate {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

white-space: nowrap은 텍스트가 줄바꿈되지 않도록 강제한다. 이 상태에서 overflow: hidden을 적용하면 컨테이너를 초과한 텍스트가 보이지 않게 된다. 마지막으로 text-overflow: ellipsis를 사용하면, 잘린 지점에 말줄임표가 표시된다.

이 방식은 카드 제목, 리스트 아이템, 테이블 셀 등 한 줄로 표현되어야 하는 UI 요소에 적합하다.

다중 줄 텍스트 트렁케이팅

문단 형태의 텍스트처럼 여러 줄을 허용하면서도 일정 줄 수까지만 표시하고 싶은 경우가 있다. 이때는 -webkit-line-clamp를 활용한다. 이 속성은 지정한 줄 수를 초과하는 텍스트를 잘라내고 말줄임표를 표시한다.

CSS
.multiline-truncate {
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

display: -webkit-box와 -webkit-box-orient: vertical은 WebKit 기반의 박스 레이아웃을 활성화하기 위한 설정이다. -webkit-line-clamp에 숫자를 지정하면 최대 표시 줄 수가 결정된다. 예제에서는 최대 3줄까지만 표시된다.

이 방식은 카드 본문, 게시글 요약, 상품 설명 등 다중 줄 텍스트가 필요한 UI에서 자주 사용된다. 참고로, -webkit-line-clamp에 1을 지정하면 단일 줄 트렁케이팅 용도로도 사용할 수 있다.

더 읽어보기

  • 2026.02.22

    View Transition API

    웹 애플리케이션에서 전환 품질은 기능 완성도와 동등한 수준으로 중요하다. 사용자가 목록에서 항목을 선택해 상세 화면으로 이동할 때, 화면이 자연스럽게 이어지면 서비스는 빠르고 안정적으로 느껴진다. 반대로 동일한 기능이라도 전환이 끊기면 체감 성능과 신뢰도는 동시에 하락한다. 전환은 부가…

  • 2026.01.03

    CSS Color Functions

    이 포스트는 Sunkanmi Fafowora가 css-tricks에 올린 CSS Color Functions 게시글을 번역한 것이다. 번역하는 과정에서 다소 의역이 있을 수 있으며, 일부 번역에는 사견이 포함되어있기도 하다.몇 달 전 누군가 저에게 “웹사이트가 돋보이려면 무엇이 필요할까…

  • 2025.11.02

    @function

    CSS는 오랫동안 스타일 값을 선언하는 정적인 언어로 인식되어 왔다. 그 안에서 반복되는 패턴이나 디자인 시스템의 일관성을 유지하기 위해 Sass나 CSS-in-JS 같은 추가 도구들을 활용해 왔으며, 최근에는 CSS Custom Properties를 활용하여 값의 재사용을 가능하게 만…

  • 2025.05.31

    모달과 팝오버, 그리고 앵커 포지셔닝

    모달과 팝오버를 칼로 베듯 명확히 구분해본 적은 없었다. 그저 화면 한가운데에 떠서 다른 작업을 막으면 모달, 특정 버튼을 눌렀을 때 앵커를 기준으로 나타나면 팝오버라는 정도로 느슨하게 생각해왔다. 하지만 두 개념은 단순한 위치나 동작의 차이를 넘어, 그 목적과 사용 방식에서 뚜렷한 차…

  • 2026.04.11

    Trie 자료구조

    문자열 데이터를 다룰 때 단순히 “이 단어가 있나?”만으로는 부족한 순간이 있다. 자동 완성처럼 특정 접두사로 시작하는 후보를 모아야 할 때도 있고, 어떤 키에 값을 두고 빠르게 찾고 싶을 때도 있다. 이럴 때 가장 자연스럽게 떠올릴 수 있는 자료구조가 바로 Trie이다.Trie는 무엇…

  • 2026.03.19

    Streams API 부록 2. 왜 이미지는 위에서 아래로 나타날까

    웹 페이지에서 이미지를 로드할 때 흥미로운 장면을 종종 볼 수 있다. 이미지가 한 번에 완전히 나타나는 것이 아니라, 위에서 아래로 조금씩 채워지면서 나타나는 경우가 있기 때문이다. 특히 네트워크가 느리거나 이미지가 큰 경우 이런 현상이 더 분명하게 보인다. 마치 이미지가 위쪽부터 스캔…

댓글

댓글을 불러오는 중...