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.