텍스트 말줄임 표시 초급부터 고급까지 - CSS
CSS
Tailwind CSS
텍스트 말줄임 처리를 CSS로 처음 배우고 겪는 문제들을 하나씩 해결하면서 고급 활용으로 나아가는 과정을 알아보도록 하자.
기본 활용
.textbox {
text-overflow: ellipsis;
overflow: hidden;
width: 150px;
}
위와 같이 지정해주면 말줄임 처리를 할 수 있다. 그러나
width
를 고정값으로 사용하고 있기 때문에
flex
, grid
와 같이 창 크기에 따라 박스 너비가 유동적으로 변하는 박스에는 적용할 수 없다.
너비가 유동적인 박스에도 처리해주기 위해서는 한 줄만 바꿔주면 된다..textbox {
text-overflow: ellipsis;
overflow: hidden;
white-space: nowrap; /* 텍스트가 길어도 줄바꿈을 무시하고 한 줄로 유지 */
width: 150px;
}
이제 너비가 유동적으로 변하더라도 한 줄이 꽉 차면 말줄임 처리가 깔끔하게 되는 것을 확인할 수 있다.
그러나 위와 같은 방법은 한 줄짜리 텍스트를 말줄임할 때만 활용할 수 있다는 한계가 있다.
여러 줄 텍스트 말줄임
처음에는 아래와 같이 자바스크립트를 이용하여 지정한 글자 수를 초과하면 말줄임 처리를 해주었다.
export default function Textbox() {
const text = "동해물과 백두산이 마르고 닳도록";
// 10글자가 넘어가면 '...' 표기를 해줘
return <div>{text.length > 10 ? text.slice(0, 10) + "..." : text}</div>;
}
그러나 위 방법은
flex
, grid
를 적용한 유동적인 박스에서는 무용지물이었다.
이때, 말줄임 처리의 끝판왕 -webkit-line-clamp
가 등장하게 된다..textbox {
overflow: hidden;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 3; /* 말줄임 줄 수 지정 */
}
위 방법을 알고 있으면 어떤 텍스트 박스를 만나든 자유자재로 말줄임 처리를 할 수 있다.
만약 Tailwind CSS를 사용한다면 아래와 같이 간단하게 적용할 수 있다.
export default function Textbox() {
const text = "동해물과 백두산이 마르고 닳도록";
return <div className="line-clamp-3">{text}</div>;
}