CSS text-overflow: ellipsis
en deuxième ligne, est-ce possible? Je ne le trouve pas sur le net.
exemple:
ce que je veux c'est comme ça:
I hope someone could help me. I need
an ellipsis on the second line of...
mais ce qui se passe est le suivant:
I hope someone could help me. I ...
Réponses:
Une exigence pour
text-overflow: ellipsis;
travailler est une version à une ligne dewhite-space
(pre
,nowrap
etc.). Ce qui signifie que le texte n'atteindra jamais la deuxième ligne.Ergo. Pas possible en CSS pur.
Ma source quand je cherchais exactement la même chose tout à l'heure: http://www.quirksmode.org/css/textoverflow.html (Quirksmode ftw!)
EDIT Si les bons dieux CSS implémenteront http://www.w3.org/TR/css-overflow-3/#max-lines, nous pouvons le faire en CSS pur en utilisant
fragments
(nouveau) etmax-lines
(nouveau). Aussi plus d'informations sur http://css-tricks.com/line-clampin/EDIT 2 WebKit / Blink a
line-clamp
:-webkit-line-clamp: 2
mettra des points de suspension sur la 2e ligne.la source
Cela devrait fonctionner dans les navigateurs webkit :
la source
overflow: hidden
pour que cela fonctionne.Comme d'autres l'ont déjà répondu, il n'existe pas de solution CSS pure. Il existe un plugin jQuery très facile à utiliser, il s'appelle dotdotdot . Il utilise la largeur et la hauteur du conteneur pour calculer s'il doit tronquer et ajouter des points de suspension.
Voici un jsFiddle .
la source
J'ai trouvé que la réponse de Skeep n'était pas suffisante et avait également besoin d'un
overflow
style:la source
si quelqu'un utilise SASS / SCSS et tombe sur cette question - peut-être que ce mixage pourrait être utile:
cela ajoute seulement les points de suspension dans les navigateurs webkit. le reste le coupe.
la source
/* autoprefixer: off */
pour/*! autoprefixer: off */
sinon-webkit-box-orient: vertical;
être supprimé après la compilation, ce qui signifie que les points de suspension n'ont jamais été affichésUtilisez simplement le serre-ligne pour les navigateurs qui le prennent en charge (la plupart des navigateurs modernes) et retombez sur 1 ligne pour les anciens.
la source
Quel dommage que vous ne puissiez pas le faire fonctionner sur deux lignes! Ce serait génial si l'élément était un bloc d'affichage et avait une hauteur définie sur 2em ou quelque chose, et lorsque le texte débordait, il montrerait des points de suspension!
Pour une doublure simple, vous pouvez utiliser:
Pour plusieurs lignes, vous pouvez peut-être utiliser un Polyfill tel que jQuery autoellipsis qui est sur github http://pvdspek.github.com/jquery.autoellipsis/
la source
dotdotdot
mentionné dans un autre post.Je ne suis pas un pro JS, mais j'ai trouvé quelques façons de le faire.
Le HTML:
Ensuite, avec jQuery, vous le tronquez à un nombre de caractères spécifique, mais laissez le dernier mot comme ceci:
Le résultat ressemble à ceci:
Ou, vous pouvez simplement le tronquer à un nombre de caractères spécifique comme celui-ci:
Le résultat ressemble à ceci:
J'espère que ça aidera un peu.
Voici le jsFiddle .
la source
voici un bon exemple en css pur.
la source
J'ai déjà utilisé le plugin jQuery-condense , qui semble pouvoir faire ce que vous voulez. Sinon, il existe différents plugins qui pourraient répondre à vos besoins.
Edit: vous a fait une démo - notez que j'ai lié le jquery.condense.js sur la démo qui fait la magie, donc merci à l'auteur de ce plugin :)
la source
Il s'agit d'un CSS non standard, qui n'est pas couvert dans la version actuelle de CSS (Firefox ne le prend pas en charge). Essayez plutôt d'utiliser JavaScript.
la source
Mode CSS pur pour découper le texte multiligne avec des points de suspension
Ajustez la hauteur du conteneur de texte, contrôlez la ligne pour la casser par -webkit-line-clamp: 2;
la source
J'ai rencontré ce problème auparavant, et il n'y a pas de solution CSS pure
C'est pourquoi j'ai développé une petite bibliothèque pour traiter ce problème (entre autres). La bibliothèque fournit des objets pour modéliser et effectuer un rendu de texte au niveau des lettres. Vous pouvez par exemple émuler un débordement de texte: des points de suspension avec une limite arbitraire (pas besoin d'une ligne)
En savoir plus sur http://www.samuelrossille.com/home/jstext.html pour une capture d'écran, un didacticiel et un lien de téléchargement.
la source
Si quelqu'un essaie de faire fonctionner le line-clamp dans la flexbox , c'est un peu plus difficile - surtout une fois que vous testez la torture avec des mots très longs. Les seules différences réelles dans cet extrait de code sont
min-width: 0;
dans l'élément flexible contenant du texte tronqué etword-wrap: break-word;
. Un chapeau à https://css-tricks.com/flexbox-truncated-text/ pour la perspicacité. Avis de non-responsabilité: ce n'est encore webkit que pour autant que je sache.http://codepen.io/AlgeoMA/pen/JNvJdx (version codepen)
la source
Toutes les réponses ici sont fausses, il leur manque une pièce importante, la hauteur
la source
une base de méthode css pure sur -webkit-line-clamp, qui fonctionne sur webkit:
la source
Aucun moyen vraiment simple de le faire. Utilisez la bibliothèque Clamp.js .
la source
J'ai trouvé une solution, mais vous devez connaître une longueur approximative des caractères qui s'adaptera à votre zone de texte, puis joignez un ... à l'espace précédent.
La façon dont je l'ai fait est de:
code:
voici un violon - http://jsfiddle.net/GYsW6/1/
la source