テキスト末尾を3点リーダーにする方法
![Cover Image for テキスト末尾を3点リーダーにする方法](/assets/blog/preview/cover.jpg)
![Yuichi Kanno](/assets/blog/authors/jj.jpeg)
久しぶりに実装した3点リーダーについてまとめます。
そこまで難易度は高くないものの、実装する間隔が空くと毎回調べている気がしたので、ここらで一度記事として残そうと思いました。
3点リーダーとは
まず3点リーダーとはなんぞやということですが、
文章の末尾を省略するときにある「...」という点々のことです。
3つの点で表現することが多いので3点リーダーと呼ばれています。
実装方法
省略したいテキストの要素にスタイルを付与してあげます。
<div class="text">あいうえおかきくけこさしすせそ</div>
.text {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
3点リーダー自体(... の部分)は text-overflowプロパティにより実現されます。
それぞれのプロパティの詳細な使用は下記を参照してください。
https://developer.mozilla.org/ja/docs/Web/CSS/text-overflow
https://developer.mozilla.org/ja/docs/Web/CSS/overflow
https://developer.mozilla.org/ja/docs/Web/CSS/white-space
またdisplay: flex; を指定している場合、text-overflow: ellipsis; は効きません。
解決策としては「flexの子要素をdivタグなどでwrapする」などがあります。
(詳しくはこちらの記事を参照)
複数行対応
1行のテキストの時は上記対応で良いのですが、複数行のテキストの最終行の末尾を省略したい時もありますよね。
その場合は下記のように実装します。
.text {
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 3;
}
-webkit-line-clampプロパティにより指定した行数のテキスト末尾を3点リーダー表示します。上記の場合は3行目を3点リーダー表示します。
※IEには対応していません。
https://developer.mozilla.org/ja/docs/Web/CSS/-webkit-line-clamp
終わりに
簡単でしたね!!
次回以降はすぐ実装出来るようにしておきたいです。