I've created a form with an input, but the box only handles text in a single row. I would like to style it so that the input field is similar to that of Twitter's, where the box itself is multiple rows:
And it also expands when you hit enter:
This is currently what I have:
<form name="userForm">
<input type="text" id="userInput" name="userInput" placeholder="Enter text here.">
<button type="submit" id="button">Submit</button>
</form>
I've styled the button and the input, but haven't done anything to change its shape, so it's at default. What do I have to tweak to achieve this?
The <textarea> tag defines a multi-line text input control. The <textarea> element is often used in a form, to collect user inputs like comments or reviews.
Web apps often need forms for user interactivity, and this requires us as developers to use form controls such as text input boxes, dropdowns, checkboxes, and so on. One frequently used form control is textarea , which is used to get multi-line input from a user.
The TEXTAREA element creates a multi-line text input control.
<textarea>: The Textarea element. The <textarea> HTML element represents a multi-line plain-text editing control, useful when you want to allow users to enter a sizeable amount of free-form text, for example a comment on a review or feedback form.
You need to use an HTML <textarea>
element.
From MDN:
<textarea>
The HTML
<textarea>
element represents a multi-line plain-text editing control.
Using <input>
for multiline text is not possible natively and, if hacked, would be invalid HTML.
HTML5 spec:
4.10.5.1.2 Text (
type=text
) state and Search state (type=search
)The
input
element represents a one line plain text edit control for the element's value.(emphasis mine)
Twitter input box
You mention you want the textarea to resemble Twitter's (auto-resize / no scrollbar). Consider this option and the following SO posts:
Autosize
A small, stand-alone script to automatically adjust textarea height.
Use TextArea.Alter rows and columns attribute according to requirement.
<textarea class="input" rows="10" cols="10">Some text here</textarea>
To add the hover effect and change the box size , use css. Assign a normal height and width, and change that on focus.
.input:focus {
height:300px;
}
.input{
width:500px;
height:200px;
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With