Use the CSS resize property to control whether someone can drag a textarea’s resize handle. There is no standard resizable HTML attribute. A textarea’s rows and columns suggest its initial size; they do not disable resizing.
Working example
HTML and CSS
HTML
<label for="message">Message</label>
<textarea id="message" rows="4">Try dragging the resize handle.</textarea>
CSS
textarea {
display: block;
font: inherit;
width: min(100%, 24rem);
min-height: 6rem;
resize: vertical;
}
Edit HTML or CSS to update the preview as you type. Copy code snippet copies the selected tab. Preview spacing and font defaults are not included.
resize: vertical lets the reader make room for a long response without widening the form. Use resize: none if a particular interface genuinely requires it, and test that scrolling and keyboard access still make long text usable.
Why a resize rule might do nothing
Resizing depends on the element and its overflow behavior. A normal visible-overflow paragraph is not a resizable panel simply because you add resize: both. For other boxes, provide a suitable overflow mode as explained in the resize reference.
Keep the label separate from any placeholder, and avoid a tiny fixed height that hides what the person is writing.
Sources
Reference 1 Reference 2 provide the technical details and current compatibility information.