CSS 일정 너비를 초과한 텍스트 말 줄임표로 표시하기
웹 개발을 할 때, 텍스트가 화면 밖으로 넘어가거나 제한된 공간(예: 표의 셀) 안에 내용을 보여줘야 하는 경우가 많다.
CSS를 활용해 말 줄임표(ellipsis)로 텍스트를 깔끔하게 처리하면 텍스트가 잘리지 않고 사용자의 시선을 끌면서도 가독성을 유지할 수 있다.
한 줄 텍스트 말 줄임표 처리
한 줄 텍스트가 특정 너비를 초과하는 경우, text-overflow 속성을 사용하여 말 줄임표로 처리할 수 있다.
예를 들어, 특정 너비를 초과하는 텍스트를 잘라내고 말 줄임표(...)로 표시하려면 다음과 같은 코드를 사용할 수 있다.
<div class="element">
이 텍스트는 길어서 말 줄임표로 표시됩니다.
</div>
.element {
white-space: nowrap; /* 텍스트를 한 줄로 유지 */
overflow: hidden; /* 넘치는 부분을 숨김 */
text-overflow: ellipsis; /* 말 줄임표(...)로 표시 */
width: 200px; /* 원하는 너비로 설정 */
}
- white-space: nowrap;: 텍스트를 한 줄로 표시한다.
- overflow: hidden;: 요소의 범위를 초과한 부분을 숨긴다.
- text-overflow: ellipsis;: 말 줄임표(…)를 추가한다.
- width: 요소의 너비를 설정해 텍스트가 넘칠 경우 말 줄임표가 적용된다.
렇게 하면 요소의 너비가 200px을 초과하는 경우, "이 텍스트는 길어서…"와 같이 말 줄임표가 나타난다.
max-width를 활용한 유연한 처리
보다 유연하게 텍스트를 처리하고자 할 때 max-width 속성을 활용할 수 있다. 이를 통해 고정된 너비 대신 최대 너비를 설정하여 텍스트가 가변적인 부모 요소에 맞춰 적절히 잘리도록 할 수 있다.
.element {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
max-width: 100%;
}
이 설정은 부모 컨테이너의 크기에 따라 요소의 너비가 동적으로 변하므로, 가로 공간을 유연하게 활용할 수 있다.
예를 들어 반응형 레이아웃을 사용하는 경우 max-width 속성을 설정하면 사용자 경험이 개선된다.
<div class="element" style="max-width: 300px;"> 이 텍스트는 부모 요소의 크기에 따라 유연하게 줄여지며, 말 줄임표로 처리됩니다. </div>
이렇게 하면 부모 컨테이너의 크기에 맞게 텍스트가 최대 너비만큼만 표시되고 넘치는 경우 말 줄임표가 적용됩니다.
여러 줄 텍스트 말 줄임표 처리
여러 줄 텍스트에서도 말 줄임표를 사용하여 표시할 수 있다. CSS만으로 이를 구현하기 위해 -webkit- 속성을 활용한 방법이 대표적이다. 이는 특정한 경우에 매우 유용하며, 아래 코드를 통해 확인할 수 있다.
<div class="element"> 이 텍스트는 여러 줄로 길게 표시되지만, 최대 세 줄까지만 보이게 설정했습니다. 그 이상은 말 줄임표로 잘리게 됩니다. </div>
.element {
display: -webkit-box; /* 플렉스 컨테이너와 유사한 박스 */
-webkit-line-clamp: 3; /* 표시할 줄 수 설정 */
-webkit-box-orient: vertical; /* 박스를 수직으로 정렬 */
overflow: hidden; /* 넘치는 부분을 숨김 */
text-overflow: ellipsis; /* 말 줄임표(...)로 표시 */
}
- display: -webkit-box;: 플렉스 박스와 유사한 레이아웃을 제공한다.
- -webkit-line-clamp: 텍스트를 특정 줄 수로 제한하고 그 이후에는 잘라낸다.
- -webkit-box-orient: vertical;: 박스를 수직으로 정렬해 텍스트를 제한한다.
- overflow: hidden;: 넘치는 부분을 숨긴다.
이 코드를 적용하면 텍스트가 세 줄을 초과할 경우 말 줄임표로 처리되며 가독성을 유지할 수 있다.
실제 활용 시 주의사항
- 브라우저 호환성: -webkit-line-clamp 속성은 일부 브라우저에서만 지원될 수 있다. 모든 브라우저에서 일관된 UI를 보장하려면 필요에 따라 폴리필이나 자바스크립트를 활용한 추가적인 처리가 필요할 수 있다.
- 너비 조정: 텍스트 말 줄임표는 요소의 너비를 명확히 지정해야 정상적으로 동작한다. 부모 요소나 컨테이너의 크기를 고려해 너비를 설정하는 것이 중요하다.
결론
CSS의 text-overflow와 max-width 속성은 텍스트가 제한된 공간에서 넘치는 경우, 깔끔한 말 줄임표(ellipsis)로 표시하는 데 유용한 기능이다.