Textarea resize
Ich brauchen, um eine textarea zu zeigen, einige text. Das problem ist, dass wenn ich 4-5 Zeilen text mit einer Bildlaufleiste angezeigt wird. Wie kann ich mit CSS/HTML, so dass die textarea-Komponente wird so groß wie es der Inhalt (keine scrollbar).
-
in der textarea nicht ändern müssen, es ist eine Größe dynamicaly, ich benutze es nur, um zu zeigen, ein text (ich könnte auch mit einem Behinderten textarea)
-
Ich möchte die textarea-Komponente für die Strecke nur verticaly.
Wenn Sie wissen wollen:
Ich verwenden Sie die textarea-Komponente, um zu zeigen, einige text aus einer Datenbank, so dass, wenn das Textfeld (mit dem text) erstellt wird, sollte er zeigen den ganzen text auf einmal ohne Scrollbalken.
- Der ganze Sinn einer textarea ist für dem der Benutzer text eingeben kann. Wenn Sie möchten, die text anzeigen, verwenden Sie ein element mit der entsprechenden Semantik (vielleicht div -, p-oder pre).
Du musst angemeldet sein, um einen Kommentar abzugeben.
Im fürchte, Sie haben zu greifen, um javascript zu setzen, die Höhe des textarea. Sie können die
scrollHeight
- Eigenschaft, um zu bestimmen, die gesamte Höhe.Alternativ könnte man einfach ein
div
und Stil derdiv
zu schauen, wie ein textarea. Diediv
wird automatisch wachsen und als ein behinderter textarea sowieso, Sie nicht wirklich brauchen, es zu sein, eine textarea.http://jsfiddle.net/TDAcr/
Okay, ich habe gerade diese, und es funktioniert sehr schön:
Nun, ich sollte nicht davon ausgehen, dass Sie wissen, Javascript (aber man könnte).
Einfach laufen
Etwas wie funktionieren sollte. Ich bin nicht der beste mit Javascript (nicht einmal in der Nähe, die ich gerade angefangen mit es den anderen Tag)
Scheint, etwas ähnliches zu tun, was Sie wollen. Das erste code-Beispiel wird eine textarea-Komponente, die dynamisch ändert, basierend auf, was in ihm (während der Eingabe). Es dauert ein paar änderungen, um es zu bekommen, wie Sie wollen.
Könnte man mit der CSS-height: und width: Attribute e. g. so etwas wie
<textarea style="width:400px;height:300px">...</textarea>
, verwenden Sie einfach die Größen, die Sie möchten.Darüber hinaus, wenn Sie wollen, unterdrücken Sie die Bildlaufleiste, verwenden Sie
overflow:hidden
.können Sie verwenden wie div textarea. Es ist möglich, wie diese:
Finden Sie die Höhe der schriftart, werden Sie höchstwahrscheinlich eine Anzeige in. Ich bin mir nicht sicher über CSS/HTML, aber man könnte mit Javascript/PHP/ASP.net use map, um zu bestimmen, wie groß der text wird, basierend auf der Anzahl der Zeichen. Wenn Sie es in einer Monospace-schriftart, wird dies noch einfacher. Warum verwenden Sie einen text-Bereich, wenn Sie nur könnten verwenden Sie eine Beschriftung, die das gleiche tun wird, was alle von selbst?
Wenn Sie nichts dagegen haben, mit Hilfe von JavaScript können Sie verwenden Annäherung aus einer der folgenden Artikeln:
http://james.padolsey.com/javascript/jquery-plugin-autoresize/
http://scvinodkumar.wordpress.com/2009/05/28/auto-grow-textarea-doing-it-the-easy-way-in-javascript/
Aber von Ihrem Questen ich nehme an, Sie wollen die Reine CSS-Lösung.
Dann können Sie nur imitieren Gewand der textarea mit einfachen und div folgende css (wenn Sie nur wollen, um text anzuzeigen):
Ich gehe davon aus
name
- Attribut wird nicht verwendet. Sie können mit dieser alternative (HTML5):http://jsfiddle.net/JeaffreyGilbert/T3eke/
Mithilfe der resize-Eigenschaft arbeitet in diesen Tagen: