여러줄에서 말줄임표 사용하기
멀티라인에서의 말줄임은 단일줄과 다릅니다.
기존 말줄임은 간단히 ‘text-overflow: ellipsis’ 속성을 사용하여 적용 할 수 있습니다.
말줄임 기능은 여러줄에 있을 경우 더욱 필요한 경우가 더 많습니다.
하지만 우리가 아는 ellipsis로는 구현할 수 없습니다.
웹킷엔진을 사용하는 브라우저에서는 -webkit-line-clamp 프로퍼티를 활용하여 여러줄의 문단도 CSS를 통해 말줄임 처리를 할 수 있습니다.
1 | display: -webkit-box; /* 블록을 임의의 배치 순서로 변경할 수 있게 해줌 */ |
-webkit-line-clamp 미지원 브라우저 지원
-webkit-line-clamp를 지원하지 않는 브라우저에서는 아래와 같이 사용할 수 있습니다.
height = line-height * -webkit-line-clamp 으로 설정해주시면 됩니다.
1 | overflow: hidden; |
하지만, 위의 방식으로 하면 텍스트를 원하는 만큼 줄이는건 가능하지만 여전히 ‘…’ 를 사용하는 말줄임이 노출되지는 않습니다
firefox에서 ‘…’ 표현하기
firefox는 line-clamp을 지원하지 않는 브라우저중 하나입니다.
이때는 css hack을 활용해 ‘…’를 나타낼 수 있습니다.
1 | @-moz-document url-prefix() { |
@-moz-document url-prefix는 Gecko (Mozilla Firefox) 만 타겟팅하는 데 사용되는 CSS 해킹입니다.
다른 모든 브라우저는 스타일을 무시합니다.
즉, 다른 미지원 브라우저들도 hack을 활용하여 ‘…’을 나타낼 수 있습니다.
하지만, 이렇게 되면 각 브라우저마다 다른 코드들을 생성으로 코드가 길어질 수 있습니다.
그렇기때문에 모든 브라우저를 지원하는게 단순히 일정 브라우저에서 지원하는것보다 중요하다면,
line-clamp를 사용하는것 대신에 공통으로 쓸 수 있는 코드를 사용하는것도 좋은방법일거라 생각됩니다.
참고자료 :