HTML + CSS: Comment forcer le contenu div à rester sur une seule ligne?


259

J'ai un long texte dans un divavec définiwidth :

HTML:

<div>Stack Overflow is the BEST !!!</div>

CSS:

div {
    border: 1px solid black;
    width: 70px;
}

Comment pourrais-je forcer la chaîne à rester sur une ligne (c'est-à-dire à être coupée au milieu de "Overflow")?

J'ai essayé d'utiliser overflow: hidden, mais cela n'a pas aidé.


12
white-space: nowrapmettez ceci dans votre étiquette de style.
Moshii

Réponses:


524

Essaye ça:

div {
    border: 1px solid black;
    width: 70px;
    overflow: hidden;
    white-space: nowrap;
}



14

Votre code HTML: <div>Stack Overflow is the BEST !!!</div>

CSS:

div {
    width: 100px;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}

Maintenant, le résultat devrait être:

Stack Overf ...

12

Tout le monde a sauté sur celui-ci !!! Moi aussi j'ai fait un violon:

http://jsfiddle.net/audetwebdesign/kh4aR/

RobAgar obtient un point pour avoir souligné en white-space:nowrappremier.

Deux choses ici, vous avez besoin overflow: hiddensi vous ne voulez pas voir les caractères supplémentaires pénétrer dans votre mise en page.

En outre, comme mentionné, vous pouvez utiliser white-space: pre(voir EnderMB) en gardant à l'esprit que precela n'effondrera pas l'espace blanc alors qu'il le white-space: nowrapfera.


4

Essayez ceci. Il utilise preplutôt que nowrapcomme je suppose que vous voudriez que cela fonctionne de la même manière, <pre>mais l'un ou l'autre fonctionnera très bien:

div {
    border: 1px solid black;
    max-width: 70px;
    white-space:pre;
}

http://jsfiddle.net/NXchy/11/


4

J'ai sauté ici à la recherche de la même chose, mais aucune n'a fonctionné pour moi.

Il y a des cas où, quoi que vous fassiez et selon le système (Oracle Designer: Oracle 11g - PL / SQL), les divs iront toujours à la ligne suivante, auquel cas vous devriez utiliser la balise span à la place.

Cela a fait des merveilles pour moi.

<span float: left; white-space: nowrap; overflow: hidden; onmouseover="rollOverImageSectionFiveThreeOne(this)">
    <input type="radio" id="radio4" name="p_verify_type" value="SomeValue"  />
</span> 
Just Your Text || 
<span id="headerFiveThreeOneHelpText" float: left; white-space: nowrap; overflow: hidden;></span>

Une aide énorme à ce sujet, c'est tout ce qui a fonctionné pour moi, j'ai probablement passé 30 minutes là-dessus, lol. Curieusement, je n'utilise aucun de ce que vous avez mentionné, css, javascript, bootstrap et certains css personnalisés.
edencorbin


1
div {
    display: flex;
    flex-direction: row; 
}

était la solution qui a fonctionné pour moi. Dans certains cas, avec div-lists, cela est nécessaire.

certaines valeurs de direction alternatives sont celles row-reverse, column, column-reverse, unset, initial, inherit qui font les choses que vous attendez qu’elles fassent


0

Essayez de définir une hauteur afin que le bloc ne puisse pas s'agrandir pour accueillir votre texte et conservez le overflow: hiddenparamètre

EDIT: Voici un exemple de ce que vous pourriez aimer si vous devez afficher 2 lignes de haut:

div {
    border: 1px solid black;
    width: 70px;
    height: 2.2em;
    overflow: hidden;
}

Dans votre cas, l'option nowrap est probablement meilleure, mais j'ai laissé ma réponse car j'ai parfois besoin d'un bloc qui peut contenir des lignes jusqu'à ce qu'il déborde comme ceci: jsfiddle.net/NXchy/7 (a changé le lien depuis la version de Stephenmurdoch, merci!)
Wouter Simons

Pas besoin de cela, que se passe-t-il si l'utilisateur veut augmenter la taille du texte en utilisant ctrl- +? Il est préférable de garder la hauteur flexible.
Marc Audet

Si l'utilisateur redimensionne le texte avec ctrl- +, cela devrait fonctionner: jsfiddle.net/kpKW3
Wouter Simons

L'utilisation de em's dans le heightreste flexible, point clé bien illustré ici dans votre exemple.
Marc Audet
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.