# Why Normalize.css Removes the Default Vertical Scrollbar from Textarea Elements

> Discover why Normalize.css sets overflow auto for textarea elements. Ensure consistent cross-browser display by removing IE's default vertical scrollbar.

- Repository: [Nicolas Gallagher/normalize.css](https://github.com/necolas/normalize.css)
- Tags: deep-dive
- Published: 2026-03-07

---

**Normalize.css sets `textarea { overflow: auto; }` to eliminate the persistent vertical scrollbar that Internet Explorer 10+ incorrectly forces on all textarea elements, ensuring cross-browser consistency.**

The [`necolas/normalize.css`](https://github.com/necolas/normalize.css/blob/main/necolas/normalize.css) repository is a modern HTML5 CSS reset that corrects browser inconsistencies while preserving useful defaults. Among its targeted fixes is a specific rule that addresses a long-standing quirk in Internet Explorer's rendering engine. By explicitly declaring the overflow property on textareas, the library prevents unnecessary UI elements from consuming horizontal space when content fits within the container.

## The Internet Explorer 10+ Scrollbar Quirk

Internet Explorer 10 and newer versions ship with a native stylesheet that forces a **persistent vertical scrollbar** on every `<textarea>` element by default. Unlike standards-compliant browsers that only display scrollbars when content actually overflows, IE's native behavior renders the scrollbar track permanently, even for empty or short text fields.

This inconsistency creates visual noise and wastes horizontal real estate inside form controls. The behavior contradicts the CSS `overflow: visible` default typically applied to most elements, and more importantly, it diverges from how Chrome, Firefox, and Safari handle textarea overflow.

## How Normalize.css Fixes Textarea Overflow

In the [`normalize.css`](https://github.com/necolas/normalize.css/blob/main/normalize.css) source file, the library explicitly overrides IE's default with a single declaration:

```css
/**
 * Remove the default vertical scrollbar in IE 10+.
 */
textarea {
  overflow: auto;
}

```

*Source: [[`normalize.css`](https://github.com/necolas/normalize.css/blob/main/normalize.css) lines 57–62](https://github.com/necolas/normalize.css/blob/master/normalize.css#L57-L62)*

By setting `overflow: auto`, Normalize.css restores the standard browser behavior where scrollbars appear contextually—only when the content height exceeds the textarea's specified dimensions. This declaration neutralizes IE's aggressive default without breaking functionality in other browsers.

## Cross-Browser Consistency in Practice

Without the normalization rule, IE users experience a degraded interface compared to visitors using modern browsers. The following examples demonstrate the visual difference:

**Without Normalize.css (Internet Explorer 10+):**

```html
<textarea rows="4" cols="30">
Short text.
</textarea>

```

*Result*: A vertical scrollbar track appears immediately, even though the content fits comfortably within four rows.

**With Normalize.css:**

```html
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/normalize.css@latest/normalize.css">
<textarea rows="4" cols="30">
Short text.
</textarea>

```

*Result*: No scrollbar appears until the text exceeds the textarea height, matching the behavior of Chrome, Firefox, and Safari.

## Summary

- **File Location**: The textarea overflow fix resides in [`normalize.css`](https://github.com/necolas/normalize.css/blob/main/normalize.css) at lines 57–62.
- **Targeted Issue**: Internet Explorer 10+ forces a permanent vertical scrollbar on all textareas via its native stylesheet.
- **Solution**: Explicitly declaring `overflow: auto` neutralizes IE's default and aligns it with standard browser behavior.
- **Benefit**: Prevents unnecessary UI elements from consuming space and ensures visual consistency across rendering engines.

## Frequently Asked Questions

### Why does IE10+ show a scrollbar by default on textareas?

Internet Explorer's native user agent stylesheet applies an internal `overflow: scroll` equivalent to textarea elements. This forces the browser to reserve space for scrollbars regardless of content height, a legacy behavior that Microsoft maintained through IE11 and early Edge versions.

### Does setting `overflow: auto` on textareas affect other browsers negatively?

No. Standards-compliant browsers already default to `overflow: auto` behavior for textareas implicitly. The explicit declaration in Normalize.css acts as a no-op on Chrome, Firefox, and Safari while specifically correcting the IE deviation.

### Where exactly is the textarea overflow rule defined in the source code?

The rule is located in the main [`normalize.css`](https://github.com/necolas/normalize.css/blob/main/normalize.css) file at lines 57–62, grouped with other form element corrections. The comment block explicitly identifies the fix as targeting "the default vertical scrollbar in IE 10+."

### Is this normalize.css fix still necessary for modern web projects?

While Internet Explorer usage has declined significantly, the fix remains relevant for enterprise environments and legacy system support. The `overflow: auto` declaration is harmless in modern browsers and maintains backward compatibility without adding bloat, making it a safe inclusion for comprehensive normalization.