Testing

CSS Resize: Browser Support, Values, Limitations

CSS resize works in Chrome 4+, Edge 79+, Firefox 4+, Safari 4+ on macOS, Opera 15+, and Samsung Internet 5+. iOS Safari and IE never support it.

Author

Prince Dewani

May 1, 2026

CSS resize is a W3C CSS Basic User Interface Module Level 4 property that lets users drag a box to change its width, height, or both. It works in Chrome 4+, Edge 79+, Firefox 4+, Safari 4+ on macOS, Opera 15+, and Samsung Internet 5+, while iOS Safari and IE never support it.

This guide covers what CSS resize is, the browsers that support it, the values, how to disable it on a textarea, and the known issues.

What is CSS resize?

CSS resize is a property defined in the W3C CSS Basic User Interface Module Level 4. It paints a small corner grip on an element so the user can drag it to a new width, height, or both. It accepts the keywords none, both, horizontal, vertical, block, and inline.

Which browsers does CSS resize support?

CSS resize ships in every modern desktop browser and in Chromium-based mobile browsers, but Safari on iOS and Internet Explorer have never added support. Global usage hovers around 82% based on the live caniuse data.

Loading browser compatibility data...

CSS resize compatibility in Chrome

Chrome supports CSS resize by default from Chrome 4 on Windows, macOS, Linux, ChromeOS, and Android. The none, both, horizontal, and vertical keywords have shipped since the early Blink releases. The newer block and inline keywords from CSS Basic User Interface Module Level 4 have shipped since Chrome 118 and follow the element's writing-mode and direction.

CSS resize compatibility in Edge

Microsoft Edge supports CSS resize by default from Edge 79 on Windows, macOS, and Linux, the first Chromium-based release. Legacy EdgeHTML 12 to 18 did not support the property, and pages that targeted those builds had to leave a textarea on the default user-agent style or fall back to a script handle.

CSS resize compatibility in Firefox

Firefox supports CSS resize by default from Firefox 4 on Windows, macOS, Linux, and Android. Firefox lets the user drag the element below its natural content size as long as min-width and min-height allow it, which differs from older WebKit. Firefox added the block and inline keywords from Firefox 121.

CSS resize compatibility in Safari

Safari supports CSS resize by default from Safari 4 on macOS. Safari on iOS does not support the property on any version, so the corner grip never paints on iPhone or iPad regardless of the iOS version. Older WebKit clamped the drag at the natural content size; Safari 16 on macOS Ventura and later let the user drag the element smaller as long as min-width and min-height allow it.

CSS resize compatibility in Opera

Opera supports CSS resize by default from Opera 15 on desktop, the first Blink-based release. Opera 12.1 had partial support on the legacy Presto engine, and Opera 9 to 12 did not support the property at all. Opera Mini does not support CSS resize on any version because the proxy renderer flattens the page server-side.

CSS resize compatibility in Samsung Internet

Samsung Internet supports CSS resize by default from Samsung Internet 5 on Galaxy phones and tablets. The browser shares the underlying Chromium engine with Chrome on Android, so it picks up the same keyword updates as the system WebView refreshes on the device.

CSS resize compatibility in Android Browser

Modern Chrome for Android and the Android WebView pick up CSS resize from the same Chromium build that ships on the desktop. The legacy stock Android Browser on Android 2.1 to 4.4 did not support the property, so a textarea on those devices stayed locked at its rendered size. Most Android phones now run Chrome or a Chromium-based default browser, which removes the gap.

CSS resize compatibility in Internet Explorer

Internet Explorer 6 through 11 never shipped CSS resize. Pages that needed a resizable region on IE had to add a script-based drag handle on a corner div and update the width and height with mouse events. Microsoft has retired Internet Explorer, so users on Windows who need CSS resize should switch to Microsoft Edge 79 or later.

Note

Note: CSS resize is missing on Safari for iOS and on every Internet Explorer build, and the WebKit corner grip behaves differently from Firefox. Test it on real browsers and OS with TestMu AI. Try TestMu AI free!

What values does the CSS resize property accept?

CSS resize accepts six keyword values. Each one decides whether the corner grip paints, which axis the user can drag, and whether the value follows the writing-mode of the element.

  • none: The default value for most elements. The corner grip does not paint, and the user cannot drag the element to a new size. Use none on a textarea to lock it at the size your stylesheet sets.
  • both: The user can drag the element on the horizontal and vertical axes. The corner grip paints on the bottom-right corner in left-to-right writing modes. both is the default user-agent style on the textarea element.
  • horizontal: The user can drag only the horizontal axis. Width changes, height stays fixed at the rendered value. Use horizontal on a side panel that should grow wider but keep its full height.
  • vertical: The user can drag only the vertical axis. Height changes, width stays fixed. vertical is the most common override on a textarea, since it lets users add lines without breaking the column width.
  • block: Resizes along the block axis as defined by the writing-mode and direction. In horizontal-tb writing mode, block matches vertical. In vertical-rl or vertical-lr, block matches horizontal. block is part of CSS Basic User Interface Module Level 4 and ships in current Chrome, Firefox, and Safari.
  • inline: Resizes along the inline axis as defined by the writing-mode and direction. inline matches horizontal in horizontal-tb and matches vertical in vertical writing modes. Use inline on internationalized layouts where the axis depends on the language.

How do you disable resize on a textarea?

Browsers ship the textarea element with resize: both as the default user-agent style, so the corner grip paints unless your stylesheet overrides it. Setting resize: none on the textarea selector removes the grip and locks the size.

  • Open your stylesheet: Edit the global CSS file or the component-level stylesheet that targets the textarea you want to lock.
  • Add a textarea selector: Write a textarea selector or scope it to a specific class such as .comment-box textarea so only the targeted textareas lose the grip.
  • Set resize to none: Inside the rule, add resize: none. The user-agent default of resize: both is overridden and the corner grip disappears.
  • Switch to vertical for a softer lock: If you only want to stop horizontal drag but keep vertical drag, set resize: vertical instead. This is the common pattern for comment forms where users add lines.
  • Reload and verify: Hard-reload the page in Chrome, Firefox, and Safari on macOS to confirm the corner grip is gone. Skip iOS Safari, since the property has no effect there.

A minimal stylesheet rule looks like this:

.comment-box textarea {
    resize: none;
    overflow: auto;
    min-height: 6rem;
}

If the rule does not seem to apply, check that no inline style attribute or higher-specificity selector is setting resize back to both. The user-agent default is the lowest-specificity layer, so any author rule wins as long as the selector matches.

...

What are the known issues with CSS resize?

CSS resize ships in every modern desktop browser, but the way each engine paints the grip, the elements the property applies to, and the missing iOS Safari support still cause real cross-browser bugs.

  • Safari on iOS does not support resize: The CSS resize property has no effect on any iOS Safari version. A textarea or div that depends on the corner grip for sizing on the desktop will not paint a grip on iPhone or iPad. Provide a fallback such as a manual width and height input or rely on auto-grow scripts that adjust the size as the user types.
  • resize does nothing without overflow: The spec requires the element to have an overflow value other than visible for resize to take effect. A plain div with resize: both and the default overflow: visible will not paint the grip. Set overflow to scroll, auto, hidden, or clip on the same element to unlock the grip.
  • Inline elements ignore resize: The property does not apply to elements with display: inline, so a span or an a tag with resize: both will not paint the grip. Switch the element to display: block, display: inline-block, or a flex or grid item before applying the property.
  • Older WebKit clamped at the natural size: Safari before Safari 16 and older Chrome builds would not let the user drag below the rendered content size, even when min-width and min-height were smaller. Modern Chrome, Firefox, and Safari respect the min values and let the element shrink.
  • block and inline have lighter support than legacy keywords: The block and inline keywords from CSS Basic User Interface Module Level 4 ship in current Chrome, Firefox, and Safari, but older builds still in the field treat them as none. For broad reach, fall back to horizontal and vertical when writing-mode is left at the default.

In my experience, the failure that bites teams the most is the silent iOS gap, where a comment box that resizes fine on a desktop QA pass turns into a fixed-height field on iPhone, and product complains that users cannot expand the box. The fix is either a JavaScript auto-grow on input or a clear UX signal that mobile users get a fixed size.

...

Citations

All CSS resize version numbers and platform notes in this guide come from these primary sources:

Author

Prince Dewani is a Community Contributor at TestMu AI, where he manages content strategies around software testing, QA, and test automation. He is certified in Selenium, Cypress, Playwright, Appium, Automation Testing, and KaneAI. Prince has also presented academic research at the international conference PBCON-01. He further specializes in on-page SEO, bridging marketing with core testing technologies. On LinkedIn, he is followed by 4,300+ QA engineers, developers, DevOps experts, tech leaders, and AI-focused practitioners in the global testing community.

Open in ChatGPT Icon

Open in ChatGPT

Open in Claude Icon

Open in Claude

Open in Perplexity Icon

Open in Perplexity

Open in Grok Icon

Open in Grok

Open in Gemini AI Icon

Open in Gemini AI

Copied to Clipboard!
...

3000+ Browsers. One Platform.

See exactly how your site performs everywhere.

Try it free
...

Write Tests in Plain English with KaneAI

Create, debug, and evolve tests using natural language.

Try for free

Frequently asked questions

Did you find this page helpful?

More Related Hubs

TestMu AI forEnterprise

Get access to solutions built on Enterprise
grade security, privacy, & compliance

  • Advanced access controls
  • Advanced data retention rules
  • Advanced Local Testing
  • Premium Support options
  • Early access to beta features
  • Private Slack Channel
  • Unlimited Manual Accessibility DevTools Tests