# normalize.css | Nicolas Gallagher | Knowledge Base | Instagit

A modern alternative to CSS resets

GitHub Stars: 53.8k

Repository: https://github.com/necolas/normalize.css

---

## Articles

### [How normalize.css Ensures Consistent Vertical Alignment for the `progress` Element](/necolas/normalize.css/how-normalize-css-handles-progress-element-vertical-alignment)

Learn how normalize.css ensures consistent vertical alignment for the progress element across browsers. Eliminate cross-browser display issues with this essential CSS reset.

- Tags: deep-dive
- Published: 2026-03-07

### [Why Normalize.css Removes the Default Border on Images Within Links in Internet Explorer 10](/necolas/normalize.css/why-normalize-css-removes-image-border-in-links-ie10)

Learn why normalize.css removes the default border on images in IE10. Ensure consistent linked image styling across all browsers with this essential technique.

- Tags: deep-dive
- Published: 2026-03-07

### [How Normalize.css Styles the File Upload Button Across Browsers](/necolas/normalize.css/normalize-css-handling-file-upload-button-styling)

Discover how Normalize.css styles file upload buttons consistently across browsers using `-webkit-appearance` and generic resets for a uniform user experience.

- Tags: how-to-guide
- Published: 2026-03-07

### [Why Normalize.css Sets outline-offset: -2px on Search Inputs](/necolas/normalize.css/purpose-of-outline-offset-on-search-inputs-normalize-css)

Discover why normalize.css uses outline-offset -2px on search inputs. Learn how this CSS property improves focus outline alignment for a cleaner user interface.

- Tags: deep-dive
- Published: 2026-03-07

### [Why Does normalize.css Set `line-height: 0` on `sub` and `sup` Elements?](/necolas/normalize.css/why-normalize-css-sets-line-height-0-on-sub-sup)

Discover why normalize.css uses line-height 0 for sub and sup elements. Learn how it maintains consistent text flow and vertical spacing for precise glyph positioning.

- Tags: deep-dive
- Published: 2026-03-07

### [How normalize.css Handles `abbr[title]` Styling for Cross-Browser Consistency](/necolas/normalize.css/normalize-css-handling-abbr-title-element-styling)

Learn how normalize.css ensures consistent dotted underline for abbr[title] elements, removing browser inconsistencies for a unified look.

- Tags: deep-dive
- Published: 2026-03-07

### [The Role of `[hidden] { display: none }` in Normalize.css: Ensuring Cross-Browser Hidden Attribute Support](/necolas/normalize.css/role-of-hidden-display-none-in-normalize-css)

Discover how [hidden] { display: none } in normalize.css ensures consistent cross-browser support for the HTML hidden attribute by removing elements from visual layout.

- Tags: deep-dive
- Published: 2026-03-07

### [When Does normalize.css Apply `box-sizing: border-box` to Form Elements?](/necolas/normalize.css/when-normalize-css-applies-box-sizing-border-box-to-forms)

Discover when normalize.css applies box-sizing border-box to form elements. Learn about the specific elements targeted and the reasons behind this CSS rule.

- Tags: deep-dive
- Published: 2026-03-07

### [How normalize.css Addresses Cross-Browser Differences in the Select Element](/necolas/normalize.css/normalize-css-handling-select-element-differences)

Learn how normalize.css resolves cross-browser inconsistencies for the select element by resetting styles like font inheritance and margins, ensuring consistent presentation.

- Tags: deep-dive
- Published: 2026-03-07

### [Why Normalize.css Removes the Default Vertical Scrollbar from Textarea Elements](/necolas/normalize.css/why-normalize-css-removes-textarea-scrollbar)

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

- Tags: deep-dive
- Published: 2026-03-07

### [Purpose of the `::-moz-focus-inner` Rules in normalize.css: Firefox Focus Normalization](/necolas/normalize.css/purpose-of-moz-focus-inner-rules-in-normalize-css)

Learn how normalize.css uses ::-moz-focus-inner to remove Firefox proprietary focus borders and padding on buttons and inputs for consistent cross-browser design.

- Tags: internals
- Published: 2026-03-07

### [How normalize.css Normalizes Checkbox and Radio Button Inputs: CSS Box Model Reset Explained](/necolas/normalize.css/normalize-css-handling-checkbox-radio-button-styling)

Discover how normalize.css ensures consistent checkbox and radio button appearance across browsers using the CSS box model reset. Learn the technical details.

- Tags: deep-dive
- Published: 2026-03-07

### [Why Normalize.css Sets `display: block` on the `<main>` Element](/necolas/normalize.css/why-normalize-css-sets-display-block-on-main-element)

Discover why normalize.css applies display block to the main element. Learn how this prevents layout bugs in older browsers by ensuring block-level rendering for the HTML5 main tag.

- Tags: deep-dive
- Published: 2026-03-07

### [How normalize.css Handles type="search" Input Styling Limitations](/necolas/normalize.css/normalize-css-handling-search-input-styling-limitations)

Discover how normalize.css overcomes type search input styling limitations. Learn about consistent cross browser styling and removing native elements for full control.

- Tags: deep-dive
- Published: 2026-03-07

### [Why Does normalize.css Include `-webkit-text-size-adjust: 100%`? The iOS Font Scaling Fix Explained](/necolas/normalize.css/why-normalize-css-uses-webkit-text-size-adjust-100)

Discover why normalize.css uses -webkit-text-size-adjust 100% to fix iOS font scaling issues and ensure consistent typography across devices.

- Tags: deep-dive
- Published: 2026-03-07

### [Using normalize.css with Bootstrap or Tailwind CSS: A Complete Guide](/necolas/normalize.css/using-normalize-css-with-other-css-frameworks)

Learn how to use normalize.css with Bootstrap or Tailwind CSS. This guide explains its compatibility with other CSS frameworks for consistent browser styling.

- Tags: how-to-guide
- Published: 2026-03-07

### [How to Customize normalize.css for Your Project: 4 Proven Strategies](/necolas/normalize.css/how-to-customize-normalize-css)

Learn to customize normalize.css for your project. Discover 4 proven strategies including layering your own CSS or forking the source for direct modifications.

- Tags: how-to-guide
- Published: 2026-03-07

### [What Browser Versions Are Supported by normalize.css v8.0.1?](/necolas/normalize.css/browser-versions-supported-by-normalize-css-v8-0-1)

Discover which browser versions normalize.css v8.0.1 supports. Ensure cross-browser compatibility with Chrome, Edge, Firefox ESR+, IE 10+, Safari 8+, and Opera.

- Tags: api-reference
- Published: 2026-03-07

### [Why Normalize.css Removes Default Margins from Form Elements](/necolas/normalize.css/why-normalize-css-removes-margins-from-form-elements)

Normalize.css removes default margins from form elements to ensure consistent cross-browser behavior for controls like button and input, providing a predictable zero-margin baseline.

- Tags: deep-dive
- Published: 2026-03-07

### [How normalize.css Fixes Line-Height Issues for `sub` and `sup` Elements](/necolas/normalize.css/normalize-css-handling-sub-sup-line-height-issues)

normalize.css fixes sub and sup line-height by setting line-height to 0 and reducing font-size to 75% for consistent vertical rhythm.

- Tags: deep-dive
- Published: 2026-03-07

### [Why normalize.css Uses `font-family: monospace, monospace` for Code Elements](/necolas/normalize.css/purpose-of-font-family-monospace-hack-in-normalize-css)

Discover why normalize.css uses font-family monospace monospace for code elements. Learn how this rule ensures consistent rendering and fixes browser bugs for pre, code, kbd, and samp tags.

- Tags: deep-dive
- Published: 2026-03-07

### [How Normalize.css Handles Cross-Browser Inconsistencies for HTML5 Elements](/necolas/normalize.css/how-normalize-css-handles-cross-browser-inconsistencies)

Discover how Normalize.css ensures consistent HTML5 element display across browsers by correcting rendering bugs while preserving useful native defaults. Learn more.

- Tags: deep-dive
- Published: 2026-03-07

### [Why Normalize.css Preserves Useful Browser Defaults Instead of Removing All Styling](/necolas/normalize.css/why-normalize-css-preserves-useful-browser-defaults)

Discover why normalize.css keeps useful browser defaults. Learn how it ensures consistency and maintains sensible styling, offering a modern alternative to CSS resets that remove all formatting.

- Tags: deep-dive
- Published: 2026-03-07

### [How Normalize.css v8.0.1 Differs from Traditional CSS Resets like Eric Meyer's](/necolas/normalize.css/how-normalize-css-v8-0-1-differs-from-traditional-css-resets)

Discover how Normalize.css v8.0.1 differs from traditional CSS resets like Eric Meyer's. Normalize.css improves browser defaults and consistency, while resets create a blank slate.

- Tags: deep-dive
- Published: 2026-03-07

