The resize property sets whether an element is user-resizable, and if so, in which directions. Browsers usually show a small drag handle (often at the corner).
The initial value is none. It does not apply to inline elements, or to blocks whose overflow is visible or clip. Set overflow to auto, scroll, or hidden first. Textareas already scroll, so they resize easily.
Limited availability.
Not deprecated. Standard-track CSS. MDN marks it Limited availability. Core keywords (none, both, horizontal, vertical) work in modern Chrome, Firefox, Safari, and Edge. block and inline are logical and newer. Internet Explorer has no support. Not a runtime API.
These logical keywords depend on writing-mode and direction. Prefer them for multilingual layouts; use physical keywords for fixed left–right / up–down UI.
touch
Handles vary by browser and device
Desktop browsers usually show a corner grip. Touch UIs may offer weaker or no resize UX. Do not rely on resize as the only way to reach content.
Compatibility
Browser Support
resize is a browser CSS property for user-driven sizing. Node.js, Deno, and Bun do not apply it.
✓ Limited availability
resize
none, both, horizontal, and vertical work in modern Chrome, Firefox, Safari, and Edge. Internet Explorer has no support. block and inline are newer logical keywords.
88%Modern browser reach
Google ChromeAll modern
Full support
Mozilla FirefoxAll modern
Full support
Apple SafariAll modern
Full support
Microsoft EdgeAll modern
Full support
OperaModern
Full support
Samsung InternetAll modern
Full support
Internet ExplorerNo
No support
resizeLimited · no IE
Bottom line: Safe to teach for modern browsers with overflow set correctly. Skip IE. Prefer physical keywords for beginner demos; verify block/inline when needed. Not a runtime API.
Remember
Key Takeaways
Role: let users drag an element’s size in one or both directions.
Prerequisite: overflow must not be visible or clip (except controls that already scroll).
Directions:both, horizontal, vertical, plus logical block / inline.
Textareas: use none to remove the default handle, or vertical to keep width stable.
One line: set overflow first, then pick a resize keyword — without eligible overflow, the handle never appears.
Frequently Asked Questions
It controls whether users can drag to change an element's size and in which directions. Common uses are textareas and scrollable panels.
The initial value is none. The element is not user-resizable unless you change it.
resize does not apply when overflow is visible or clip, and it does not apply to inline elements. Set overflow to auto, scroll, or hidden on a block box first.
horizontal always resizes left–right. inline resizes in the inline axis, which follows writing-mode and direction. In horizontal English text they often feel the same.
Yes. Use resize: none on the textarea to remove the drag handle while keeping the field editable.
Core values work in modern Chrome, Firefox, Safari, and Edge. Internet Explorer has no support. MDN marks the property Limited availability. It is a browser CSS property, not a Node.js feature.