Beyond basic inputs, HTML forms offer multi-line text areas and dropdown selects for richer data entry.
<textarea>A <textarea> is for multi-line text input — feedback, descriptions, messages:
<label for="message">Your message</label>
<textarea id="message" name="message" rows="5" cols="40" placeholder="Type your message here..."></textarea>
Key points:
rows and cols set the default visible size (CSS width/height are usually preferred)value attribute)</textarea><select> dropdownA <select> renders a dropdown menu:
<label for="country">Country</label>
<select id="country" name="country">
<option value="">-- Please choose --</option>
<option value="us">United States</option>
<option value="uk" selected>United Kingdom</option>
<option value="ca">Canada</option>
</select>
selected pre-selects an option<option value=""> with empty value is a useful placeholdervalue attribute is what gets sent to the serverAdd multiple and size to allow selecting several options:
<select name="skills" multiple size="4">
<option value="html">HTML</option>
<option value="css">CSS</option>
<option value="js">JavaScript</option>
<option value="python">Python</option>
</select>
Hold Ctrl/Cmd to select multiple items.
<optgroup><select name="course">
<optgroup label="Front-end">
<option value="html">HTML</option>
<option value="css">CSS</option>
</optgroup>
<optgroup label="Back-end">
<option value="python">Python</option>
<option value="node">Node.js</option>
</optgroup>
</select>
<datalist> — suggested values<datalist> provides autocomplete suggestions for a text input without restricting to those values:
<label for="browser">Browser</label>
<input list="browsers" id="browser" name="browser" />
<datalist id="browsers">
<option value="Chrome">
<option value="Firefox">
<option value="Safari">
<option value="Edge">
</datalist>
<textarea> for a bio field (at least 4 rows).<select> dropdown with at least 4 options.<option> using selected.<datalist> for a city field with at least 3 suggestions.