In meinem einfachen Textbereich wird kein horizontaler Balken angezeigt, wenn Text überläuft. Es wird Text für eine neue Zeile umgebrochen. Wie entferne ich den Zeilenumbruch und zeige die horizontale Leiste an, wenn der Text überläuft?
146
Antworten:
Textbereiche sollten nicht standardmäßig umbrochen werden, aber Sie können wrap = "soft" festlegen, um den Umbruch explizit zu deaktivieren:
BEARBEITEN: Das Attribut "Wrap" wird nicht offiziell unterstützt. Ich habe es von der deutschen SELFHTML-Seite erhalten (eine englische Quelle ist hier ), die besagt, dass IE 4.0 und Netscape 2.0 es unterstützen. Ich habe es auch in FF 3.0.7 getestet, wo es wie angenommen funktioniert.Hier haben sich die Dinge geändert, SELFHTML ist jetzt ein Wiki und der englische Quelllink ist tot.EDIT2: Wenn Sie sicher sein möchten, dass jeder Browser dies unterstützt, können Sie CSS verwenden, um das Wrap-Verhalten zu ändern:
Von hier aus (scheint eine ausgezeichnete Seite mit Informationen über Textbereich zu sein).
EDIT3: Ich bin nicht sicher, wann es sich geändert hat (laut den Kommentaren muss es um 2014 gewesen sein), aber es
wrap
ist jetzt ein offizielles HTML5-Attribut, siehe w3schools . Die Antwort wurde entsprechend geändert.quelle
white-space: pre;
(oderpre-line
/pre-wrap
) hatte den gleichenwrap="off"
white-space: nowrap
padding
wrap
ist HTML5 gültig ... seine Einstellungen sind jetzt"hard"
und"soft"
( ref )wrap="off"
ist nicht mehr gültig, ist jedoch sowohl für IE als auch für Edge erforderlich!white-space: nowrap
funktioniert auch, wenn Sie sich nicht für Leerzeichen interessieren, aber das möchten Sie natürlich nicht, wenn Sie mit Code arbeiten (oder eingerückten Absätzen oder Inhalten, bei denen absichtlich mehrere Leerzeichen vorhanden sein könnten) ... also bevorzuge ichpre
.overflow-wrap: normal
(warword-wrap
in älteren Browsern) wird benötigt, falls ein Elternteil diese Einstellung geändert hat; Dies kann zu einem Umbruch führen, selbst wenn dieser festgelegtpre
ist.auch - im Gegensatz zu der derzeit akzeptierten Antwort - Textfelder Sie wickeln oft standardmäßig.
pre-wrap
scheint die Standardeinstellung in meinem Browser zu sein.quelle
overflow-x: scroll
mitoverflow: auto
. Die Bildlaufleisten reduzieren den verfügbaren Eingabebereich im Textbereich. Außerdem hat IE11 eine vertikale Bildlaufleiste unnötigerweise auf Ihre Weise gerendert, diese jedochoverflow: auto
behoben.Die folgende CSS-basierte Lösung funktioniert für mich:
quelle
Ich habe einen Weg gefunden, mit all dem, was gleichzeitig funktioniert, einen Textbereich zu erstellen:
Es funktioniert gut auf:
Lassen Sie mich erklären, wie ich dazu komme: Ich habe das in Chrome Inspector integrierte Tool verwendet und Werte für CSS-Stile gesehen. Daher versuche ich diese Werte anstelle der normalen ... Versuch und Irrtum, bis ich sie auf ein Minimum reduziert habe und hier ist für jeden, der es will.
Im CSS-Bereich habe ich genau dies für Chrome, Firefox, Opera und Safari verwendet:
Im CSS-Bereich habe ich genau dies für IE verwendet:
Es war ein bisschen schwierig, aber es gibt das CSS.
Ein (x) HTML-Tag wie folgt:
Und am Ende des
<head>
Abschnitts ein JavaScript wie dieses:Das JavaScript dient dazu, den W3C-Validator XHTML 1.1 Strict zu übergeben, da das Wrap-Attribut nicht offiziell ist und daher kein (x) HTML-Tag direkt sein kann, aber die meisten Browser damit umgehen. Nach dem Laden der Seite wird dieses Attribut festgelegt.
Hoffe, dass dies auf mehr Browsern und Versionen getestet werden kann und jemandem hilft, es zu verbessern, und es für alle Versionen vollständig browserübergreifend macht.
quelle
Diese Frage scheint die beliebteste zum Deaktivieren von
textarea
Wrap zu sein. Doch ab April 2017 Ich finde , dass IE 11 (11.0.9600) wird nicht deaktivieren Zeilenumbruch mit einem der oben genannten Lösungen.Die einzige Lösung, die für IE 11 funktioniert, ist
wrap="off"
.wrap="soft"
und / oder die verschiedenen CSS-Attribute wiewhite-space: pre
alter, bei denen IE 11 das Umschließen wählt, es aber immer noch irgendwo umschließt. Beachten Sie, dass ich dies mit oder ohne Kompatibilitätsansicht getestet habe . IE 11 ist ziemlich HTML 5-kompatibel, aber in diesem Fall nicht.Um Linien zu erzielen, die ihre Leerzeichen behalten und von der rechten Seite abweichen, verwende ich:
Glücklicherweise scheint dies auch in Chrome & Firefox zu funktionieren. Ich verteidige nicht die Verwendung von Pre-HTML 5
wrap="off"
, sondern sage nur, dass es für IE 11 erforderlich zu sein scheint.quelle
Wenn Sie JavaScript verwenden können, ist Folgendes möglicherweise die derzeit portabelste Option (getestetes Firefox 31, Chrome 36):
contenteditable="true"
http://jsfiddle.net/cirosantilli/eaxgesoq/
Es scheint keine tragbare CSS-Standardlösung zu geben:
wrap
Attribut ist nicht Standardwhite-space: pre;
funktioniert nicht für Firefox 31 fürtextarea
. Geige , offene Feature-Anfrage .Wenn Sie Javascript verwenden können, können Sie auch den ACE-Editor verwenden:
http://jsfiddle.net/cirosantilli/bL9vr8o8/
Funktioniert wahrscheinlich mit ACE, da es keine verwendet, die nicht
textarea
spezifiziert / inkohärent implementiert ist, aber nicht sicher ist, ob sie verwendet wirdcontenteditable
.quelle