본문 바로가기
CSS

[CSS] 글자가 길어서 영역 밖으로 벗어났을 때 생략처리 방법.

by devebucks 2021. 2. 12.
728x90

글의 결과

CSS를 사용해서 영역을 벗어날 정도로 긴 텍스트를 생략 처리를 해봅니다.

CSS 설정 옵션

width: 100px;
text-overflow: ellipsis;
overflow: hidden;
white-space: nowrap;
padding-bottom: 0.14em; //👈 글자 밑이 hidden으로 인해 잘려보일 수 있어서 추가함.

 안녕하세요.

이번에 회사 업무를 하면서, 부모영역이나 태그 영역을 벗어날 정도로 긴 글자가 들어갈 경우에 대한 예외처리를 해야 했습니다. 서버로 부터 받아 온 데이터를 수정해서 화면에 보여주는 방법은 좋지 않다고 생각했습니다. CSS로 처리해 봅시다.

 

일단, CSS 코드로 작성한 결과 화면입니다. 여기서 <div> width를 넘어가면, CSS 처리로 글자를 없애고, '...'을 붙이는 코드를 작성해 보겠습니다.

<!-- ... -->
<body>
    <div>
        css 글자 생략하기css 글자 생략하기css 글자 생략하기css 글자 생략하기css 글자 생략하기
    </div>
</body>
<!-- ... -->
div {
    width: 200px;
    height: 30px;
    border: 2px dashed red;
}

 

결과부터 보면, 다음과 같이 처리가 되었습니다.

제가 CSS에 추가한 코드는 단 3줄입니다.

div {
  width: 200px; // 너비가 지정되어 있어야 합니다.
  height: 30px;
  border: 2px dashed red;
  text-overflow: ellipsis; // 글자 넓이가 width속성으로 준 너비만큼 길어지면, ...로 처리해 줍니다.
  overflow: hidden; // width로 준 너비보다 넓어서는 내용에 대해서 보이지 않게 합니다.
  white-space: nowrap; // 공백문자가 있는 경우 줄바꿈하지 않고 한 줄로 나오게 처리할 수 있게 합니다.
}

 

간혹... 안 되는 경우가 있습니다. display가 inline인 경우입니다.

display를 block 또는 inline-block으로 해야 text-overflow: ellipsis를 사용할 수 있습니다.

 

추가로 생략이 되었다면, 생략이 된 내용 전문을 이용자가 볼 수 있게 해줘야 UI/UX적으로 사용성이 더 좋다고 생각했습니다. 그래서 마우스를 올려놓으면 tooltip이 발생하게 처리해 주었습니다.

생략되는 텍스트의 html 요소에 title="내용" 코드를 작성해 주면, 툴팁이 만들어 집니다. 함께 사용하는 것이 좋습니다.

<!-- ... -->
<body>
    <div title="css 글자 생략하기css 글자 생략하기css 글자 생략하기css 글자 생략하기css 글자 생략하기">
        css 글자 생략하기css 글자 생략하기css 글자 생략하기css 글자 생략하기css 글자 생략하기
    </div>
</body>
<!-- ... -->

 

 

max-width를 지정하기 어려운 경우

다음을 추가한다.

{
    width: 95%;
    display: block;
}

 

728x90

댓글