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

Keep vertical resizing availableLink

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.