Result
よくある、テキストの文末を省略するやつです。
1行に限らず、3行目、5行目など、n行で省略可能でWebkitやFirefoxはもちろん、IE11やEdgeもサポートしたコードです
↑ IE11で確認したスクショです。Penは非対応だったのでjsfiddleで確認しています
※Winodws10でIE11、Edge、Firefox 68.0.1、Opera 62.0.3331等で表示確認しました
css
p { /*基本設定。設定した高さより長くなった場合に文末以降が省略される*/ line-height : 1.4 ; max-height : 4.2em ; overflow : hidden ; position : relative ; text-align : justify ; text-overflow : ellipsis; width : 50% ; margin : auto ; } p::before, p::after { /*IE用。疑似要素に除外設定*/ content : '...' ; line-height : 1 ; position : absolute ; right : 0 ; top : 3em ; -ms-wrap-flow: start; } p::after { background : currentColor; color : white ; top : auto ; } @supports (-webkit-line-clamp: 3 ) { /*モダンブラウザ用*/ p { -webkit-box-orient: vertical; display : - webkit-box ; -webkit-line-clamp: 3 ; } p::before, p::after { content : normal ; } } |
モダンなWebブラウザならご存知の通り、概ねline-clampだけで事足ります。
IE11はwrap-flowを使います。いわゆるExclusion(除外要素)の指定です。疑似要素に使う事で文末省略を実現しています。上記コードは3行に対応したコードなので、行数に応じてコードを変更してください。
まぁ、今後はMSのブラウザはWebkitベースになるようなのでこのコードも不要になるかもしれませんね
ca i use
line-clampの対応ブラウザ状況です
via
Multi-line-truncation in Pure CSS w/IE11 support (Exclusions)