Gegeben eine TextArea, die als kleine Box, einzelne Zeile beginnt, ist es möglich, mit CSS3 automatisch zu wachsen, mehrere Zeilen zu haben, da der Benutzer mehrere Zeilen eingibt, bis eine festgelegte Grenze (300px) angezeigt wird, wenn eine Bildlaufleiste mit Überlauf erscheinen würde Auto mit allen Eingängen?Wie Textbereich mit CSS3 autogrowrow?
Antwort
Ja, Sie können mit CSS3. Möglicherweise müssen Sie diese mit dem Browser voranstellen.
textarea {
resize: vertical;
max-height: 300px;
min-height: 200px;
}
textarea.horiz {
resize: horizontal;
max-width: 400px;
min-width: 200px;
}
Ich habe diese von einem Beitrag habe ich verwiesen habe in der Vergangenheit gezogen: mit
textarea {
resize: both;
} /* none|horizontal|vertical|both */
textarea.vert {
resize: vertical;
}
textarea.noResize {
resize: none;
}
Anschließend können Sie sie auf max Höhen und Breiten zurückhalten
Leider scheint es, dass Sie dies nicht nur mit CSS3 tun können.
Aber, es gibt eine 3.2k verkleinerte JS-Alternative, dies zu tun.
Hier ist die link einschließlich Demo und Verwendung.
Sie können es installieren, indem npm install autosize
tun und mit dieser Art und Weise
autosize(document.querySelector('.yourTextAreaClass'));
Oder jQuery Stil
autosize($('.yourTextAreaClass'));
Und es wirkt wie ein Zauber. Es ist leicht und hat ein natürliches Gefühl im Gegensatz zu vielen Autoresize, die nutzlose Animationen machen.
Nicht möglich mit nur CSS soweit ich weiß, aber hier ist eine super winzige Angular Direktive, die nur funktioniert, indem Sie nach neuen Zeilen suchen. Sie können es leicht anpassen max Reihen usw.
angular.module('Shared.AutoGrow.Directive', [])
.directive('autoGrow', function() {
return {
restrict: 'A',
link(scope, element) {
element.on('input change',() => {
const text = element[0].value;
const lines = 1 + (text.match(/\n/g) || []).length;
element[0].rows = lines;
});
},
};
});
Plain JS Lösung einfach haben abzuleiten sein sollte, muss nur ein Ereignis-Listener auf dem Element bei der Eingabe/Änderung zu übernehmen und das ist es.
Stellen Sie einfach sicher, dass das Textfeld 'height: auto' hat – RobAu
- 1. Wie veränderbaren Textbereich mit Editor
- 2. Textbereich mit jQuery ändern
- 3. wie den Stil mit css3
- 4. Abrufen von Textbereich mit getBBox()
- 5. Kreissegment mit CSS/CSS3
- 6. Erweiterbare Menüpunkte mit CSS3
- 7. Bootstrap Eingabegruppe Textbereich mit Schaltfläche
- 8. Bildlauf mit Bildlauf auf Textbereich
- 9. SVG Animation mit CSS3
- 10. CSS3 Hintergrund mit Farbverlauf
- 11. Wie Debuggen CSS3-Rendering?
- 12. Wie Zweiweg-CSS3 Animationen
- 13. Wie zeichne die folgende Form mit CSS3
- 14. Wie mit HTML und CSS in CSS3
- 15. Wie Overall mit einer Höhe transformieren css3
- 16. Wie td Spalte Sichtbarkeit mit CSS3 animieren
- 17. Wie kann ich es mit CSS3 machen?
- 18. Wie style ich ein img mit CSS3
- 19. Wie ändert man die Platzhalterfarbe mit css3?
- 20. ein Logo mit CSS3 schaffen
- 21. Zentrierter Schlagschatten mit css3, möglich?
- 22. Schaltfläche glänzen/glühen mit CSS3
- 23. Prise zum Zoomen mit CSS3
- 24. CSS3 Radial Gradients mit RGBA()
- 25. Standardwert für Textbereich
- 26. € Hinzufügen css3 zu einer css3 Animationsschleife
- 27. Floating-Taste mit css3 Animation
- 28. Text Textbereich mit Hilfe von Javascript
- 29. Codierung/Decodierung Textbereich Wert mit Rawurlencode/Rawurlcode
- 30. HTML5 Validierung für Textbereich
Ja, das ist mit JavaScript und CSS möglich. Was hast du versucht? –
Überprüfen Sie hier: http://stackoverflow.com/questions/4954252/css-textbarea-that-expands-as-you-type-text –
Frage fragt nach einer CSS3 nur Lösung, wenn möglich und diese Frage scheint veraltete Links gebrochen haben und wurde 2010 veröffentlicht. – Rolando