159 votes

débordement css - seulement 1 ligne de texte

J'ai div avec le style css suivant :

width:335px; float:left; overflow:hidden; padding-left:5px;

Quand j'insère, dans cette div Dans le cas d'une longue ligne de texte, il passe à une nouvelle ligne et affiche tout le texte. Ce que je veux, c'est avoir une seule ligne de texte qui ne saute pas de ligne. Lorsque le texte est long, je veux que ce texte débordant disparaisse.

Je pensais régler la hauteur, mais il semble que ce soit faux.

Peut-être que si j'ajoute une hauteur identique à celle de la police, cela devrait fonctionner et ne pas poser de problèmes dans les différents navigateurs ?

Comment puis-je faire ça ?

0 votes

Pouvez-vous démontrer votre problème sur jsFiddle ?

408voto

Septnuits Points 1006

Si vous voulez le limiter à une seule ligne, utilisez white-space: nowrap; sur le div.

0 votes

Mais alors, l'ellipse ne s'affiche pas si le texte dépasse la dimension spécifiée. stackoverflow.com/questions/26342411/

1 votes

Ça marche, super. Mais j'ai besoin ... s'il y a plus de caractères à afficher parce que lorsque la longueur de la ligne est longue et qu'elle sort de la division écrite.

0 votes

Cela se comporte bizarrement si le texte caché contient des liens hypertextes. Si j'utilise la tabulation pour parcourir la page, le lien dans le texte masqué défile à l'écran, alors qu'il devrait être masqué.

84voto

Mouli Points 366

Si vous voulez indiquer qu'il y a encore du contenu disponible dans cette division, vous pouvez probablement afficher le "ellipsis" :

text-overflow: ellipsis;

Cela devrait s'ajouter à white-space: nowrap; suggéré par Septnuits.

Aussi, assurez-vous de vérifier ce fil pour gérer cela dans Firefox.

48 votes

Je crois que vous devez utiliser text-overflow: ellipsis; con overflow: hidden; y white-space: nowrap; pour que ça marche

0 votes

caniuse.com/#feat=text-overflow aka. oui, vous pouvez. Envisagez de placer l'ensemble du contenu dans l'attribut title, afin que l'utilisateur y ait toujours accès.

0 votes

Le mien s'affiche sur une seule ligne et ne remplit pas le DIV avant d'afficher l'ellipse... stackoverflow.com/questions/26342411/ ( jsfiddle.net/ofrj55j4/20 )

56voto

Gaurav Tripathi Points 935

Vous pouvez utiliser ce code css :

text-overflow: ellipsis; 
overflow: hidden; 
white-space: nowrap;

El débordement de texte en CSS permet de traiter les situations où le texte est coupé lorsqu'il déborde du cadre de l'élément. Elle peut être coupé (c'est-à-dire coupée, cachée), afficher une ellipses (" ", valeur de la plage Unicode U+2026).

Notez que débordement de texte ne se produit que lorsque la propriété overflow du conteneur a la valeur caché , défilement o auto y white-space : nowrap ; .

Le débordement du texte ne peut se produire que sur bloc o inline-block car l'élément doit avoir une largeur pour pouvoir être débordé. Le débordement se produit dans la direction déterminée par la propriété direction ou les attributs associés.

9voto

Omid Ahmadyani Points 189

Le meilleur code pour l'UX et l'UI est

white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
display: inherit;

6voto

Jaydeep Kataria Points 450
width:200px;
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;

Définir la largeur également pour définir le débordement sur une ligne

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X