recadrer le texte trop long à l'intérieur div

<div style="display:inline-block;width:100px;">

very long text
</div>

Tout moyen d'utiliser du CSS pur pour couper le texte trop long plutôt que de l'afficher sur la nouvelle ligne suivante et de ne montrer que max 100px

59
demandé sur cometta 2010-09-12 19:43:27

5 réponses

<div class="crop">longlong longlong longlong longlong longlong longlong </div>​

C'est une approche possible à laquelle je peux penser

.crop {width:100px;overflow:hidden;height:50px;line-height:50px;}​

De cette façon, le texte long sera toujours enveloppé mais ne sera pas visible en raison de overflow set, et en définissant line-height comme height, nous nous assurons qu'une seule ligne sera affichée.

Voir démo ici et belle propriété de débordement description avec des exemples interactifs.

44
répondu Davor Lucic 2010-09-12 15:49:55

, Vous pouvez utiliser:

overflow:hidden;

Pour masquer le texte en dehors de la zone.

Notez qu'il peut couper la dernière lettre (donc une partie de la dernière lettre sera toujours affichée). Une meilleure façon est d'afficher une ellipse à la fin. Vous pouvez le faire en utilisant text-overflow:

overflow: hidden;
white-space: nowrap; /* Don't forget this one */
text-overflow: ellipsis;
123
répondu Arseni Mourzenko 2014-04-07 12:00:46
.crop { 
  overflow:hidden; 
  white-space:nowrap; 
  text-overflow:ellipsis; 
  width:100px; 
}​

Http://jsfiddle.net/hT3YA/

23
répondu s1ntez 2011-12-09 19:27:27

Le code ci-dessous masquera votre texte avec une largeur fixe que vous décidez. mais pas tout à fait raison pour les conceptions sensibles.

.CropLongTexts {
  width: 170px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

Mettre à jour

J'ai remarqué dans le (s) périphérique (s) (mobile) que le texte (mélangé) les uns avec les autres en raison de (largeur fixe)... j'ai donc édité le code ci-dessus pour devenir caché en réponse comme suit:

.CropLongTexts {
  max-width: 170px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

Le (max-width) garantit que le texte sera masqué de manière réactive quelle que soit la (taille de l'écran) et ne sera pas mélangé les uns avec les autres.

1
répondu Al3abMizo Games 2017-03-09 20:03:33

Pourquoi ne pas utiliser des unités relatives?

.cropText {
    max-width: 20em;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
1
répondu Tomas Macek 2018-05-10 10:27:39