HTML + CSS: Wie kann man zwingen, dass div-Inhalte in einer Zeile bleiben?


258

Ich habe einen langen Text in einem divmit definiertemwidth :

HTML:

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

CSS:

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

Wie könnte ich die Zeichenfolge zwingen, in einer Zeile zu bleiben (dh in der Mitte von "Überlauf" geschnitten zu werden)?

Ich habe versucht zu verwenden overflow: hidden, aber es hat nicht geholfen.


12
white-space: nowrapFügen Sie dies in Ihr Style-Tag ein.
Moshii

Antworten:


522

Versuche dies:

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



14

Ihr HTML-Code: <div>Stack Overflow is the BEST !!!</div>

CSS:

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

Jetzt sollte das Ergebnis sein:

Stack Overf ...

12

Alle sind auf diesen gesprungen !!! Ich habe auch eine Geige gemacht:

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

RobAgar bekommt einen Punkt, um zuerst darauf hinzuweisen white-space:nowrap.

Einige Dinge, die Sie hier benötigen, overflow: hiddenwenn Sie nicht möchten, dass die zusätzlichen Zeichen in Ihr Layout hineinragen.

Wie bereits erwähnt, können Sie auch white-space: pre(siehe EnderMB) berücksichtigen, dass der preLeerraum nicht kollabiert, während dies der Fall white-space: nowrapist.


4

Probieren Sie es aus. Es verwendet preeher als nowrapwie ich annehmen würde, dass Sie möchten, dass dies ähnlich abläuft, <pre>aber beides wird gut funktionieren:

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

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


4

Ich bin hierher gesprungen und habe nach dem gleichen gesucht, aber keiner hat für mich funktioniert.

Es gibt Fälle, in denen divs unabhängig von Ihrer Tätigkeit und je nach System (Oracle Designer: Oracle 11g - PL / SQL) immer zur nächsten Zeile wechselt. In diesem Fall sollten Sie stattdessen das span-Tag verwenden.

Das hat Wunder für mich gewirkt.

<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>

Riesige Hilfe dabei, das war alles, was für mich funktioniert hat, wahrscheinlich 30 Minuten damit verbracht, lol. Seltsamerweise verwende ich nichts von dem, was Sie erwähnt haben, CSS, Javascript, Bootstrap und einige benutzerdefinierte CSS.
Edencorbin


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

war die Lösung, die für mich funktioniert hat. In einigen Fällen mit div-lists ist dies erforderlich.

Einige alternative Richtungswerte sind row-reverse, column, column-reverse, unset, initial, inherit die, die die Dinge tun, die Sie von ihnen erwarten


0

Versuchen Sie, eine Höhe festzulegen, damit der Block nicht an Ihren Text angepasst werden kann, und behalten Sie den overflow: hiddenParameter bei

BEARBEITEN: Hier ist ein Beispiel dafür, was Ihnen gefallen könnte, wenn Sie 2 Zeilen hoch anzeigen müssen:

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

In Ihrem Fall ist die Nowrap-Option wahrscheinlich besser, aber ich habe meine Antwort hinterlassen, weil ich manchmal einen Block benötige, in dem einige Zeilen umbrochen werden, bis er wie folgt überläuft: jsfiddle.net/NXchy/7 (Link von Stephenmurdochs Version geändert, danke!)
Wouter Simons

Dies ist nicht erforderlich. Was passiert, wenn der Benutzer die Textgröße mit Strg + erhöhen möchte? Die Höhe flexibel zu halten ist besser.
Marc Audet

Wenn der Benutzer die Größe des Textes mit Strg- + ändert, sollte dies nur funktionieren: jsfiddle.net/kpKW3
Wouter Simons

Die Verwendung von em's in the heighthält es flexibel, ein wichtiger Punkt, der hier in Ihrem Beispiel gut dargestellt wird.
Marc Audet
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.