2011-09-30 6 views
13

Comment pouvez-vous cacher le débordement dans un div?comment cacher des textes trop longs dans les éléments div?

Ici, le texte passe automatiquement juste en bas à une nouvelle ligne si le texte est plus long que le div

<div style="width:50px; border:1px solid black; overflow-y:hidden"> 
    test test test test 
</div> 
+0

'overflow: none;' –

+3

@JohnnyCraig - Il n'y a pas une telle chose comme 'trop-plein: none' – Rob

+3

merci voler. mon erreur, il arrive mais au lieu de simplement dire aux gens ce qu'il n'y a pas, vous devriez aussi inclure ce qu'il y a. 'overflow: hidden;' –

Répondre

0

essayer overflow: none;

vous n'avez pas mentionné si vous voulez des barres de défilement ou non.

EDIT:

Désolé, je voulais dire overflow: hidden.

+0

Il n'y a pas de valeur 'none' pour la propriété' overflow'. Voir [Spécification CSS2] (http://www.w3.org/TR/CSS2/visufx.html#propdef-overflow). – kapa

+0

Il utilise déjà 'hidden' sur l'axe Y. – kapa

10

Vous devez spécifier un height pour votre div, overflow: hidden; ne peut masquer le contenu vertical débordant s'il existe une sorte de hauteur définie.


En d'autres termes:

Voici le texte enveloppe juste en bas à une nouvelle ligne si le texte est plus longue que la div

Mais combien de temps est que div en réalité?


Veuillez consulter my jsFiddle demonstration qui illustre la différence.

+0

même en spécifiant la hauteur, le texte se termine toujours à une nouvelle ligne .. mais il y a débordement - oui – clarkk

+0

@clarkk Alors qu'est-ce que vous essayez d'atteindre exactement? – kapa

18

Si vous ne souhaitez afficher qu'une seule ligne de texte dans une div à largeur fixe, exécutez white-space:nowrap. Avec overflow:hidden, il forcera votre navigateur à ne pas casser la ligne et recadrer la vue à votre largeur forcée.

Vous pouvez également ajouter text-overflow:ellipsis pour éviter de couper des mots et des lettres en deux, cela ajoute un joli ... à la fin pour vous montrer qu'il manque quelques bits. Je ne suis pas sûr du support du navigateur, et je n'ai jamais essayé celui-ci.

+2

Firefox 7 vient de sortir, c'est le premier Firefox qui supporte 'text-overflow'. D'autres navigateurs le supportent (même les anciens IE). Voir [débordement de texte sur caniuse.com] (http://caniuse.com/#search=text-overflow). Et +1. – kapa

8

La propriété CSS text-overflow: ellipsis peut peut-être vous aider avec ce problème.

Considérez ceci HTML ci-dessous:

<div id="truncateLongTexts"> 
    test test test test 
</div> 

#truncateLongTexts { 
    width: 100px; 
    white-space: nowrap; 
    overflow: hidden; 
    text-overflow: ellipsis // This is where the magic happens 
} 
Questions connexes