En CSS, la règle text-overflow: ellipsis
permet d'ajouter trois points à la fin d'un mot s'il dépasse la largeur de son conteneur.
text-overflow: ellipsis;
Malheureusement cela ne fonctionne pas pour du texte sur plusieurs lignes. Il existe la règle line-clamp
mais le support n'est pas très étendu sur les navigateurs. Voici donc un petit mixin Sass qui permettra d'augmenter son support avec un fallback :
@mixin line-clamp($lines, $line-height) { display: block; display: -webkit-box; -webkit-line-clamp: $lines; -webkit-box-orient: vertical; max-height: $lines * $line-height; text-overflow: ellipsis; overflow: hidden; }
Pour son utilisateur il suffit de lui passer le nombre de ligne désirée et le line-height courant. Ce deuxième paramètre permet de limiter la taille du conteneur pour les cas ou le navigateur ne support pas line-clamp le texte sera toujours limité au bon nombre de ligne mais n'aura juste pas les trois points finaux.
.article-intro { @include line-clamp(3, 1.25em); }
Plutôt très pratique !