Normalize.css is a customisable CSS file that makes browsers render all elements more consistently and in line with modern standards.
The project relies on researching the differences between default browser styles in order to precisely target only the styles that need or benefit from normalizing.
npm install --save normalize.css
component install necolas/normalize.css
bower install --save normalize.css
No other styles should come before Normalize.css.
It is recommended that you include the normalize.css
file as untouched
library code.
Normalize.css v1 provides legacy browser support (IE 6+, Safari 4+), but is no longer actively developed.
Additional detail and explanation of the esoteric parts of normalize.css.
pre, code, kbd, samp
The font-family: monospace, monospace
hack fixes the inheritance and scaling
of font-size for preformated text. The duplication of monospace
is
intentional. Source.
sub, sup
Normally, using sub
or sup
affects the line-box height of text in all
browsers. Source.
svg:not(:root)
Adding overflow: hidden
fixes IE9’s SVG rendering. Earlier versions of IE
don’t support SVG, so we can safely use the :not()
and :root
selectors that
modern browsers use in the default UA stylesheets to apply this style. SVG
Mailing List discussion
input[type="search"]
The search input is not fully stylable by default. In Chrome and Safari on
OSX/iOS you can’t control font
, padding
, border
, or background
. In
Chrome and Safari on Windows you can’t control border
properly. It will apply
border-width
but will only show a border color (which cannot be controlled)
for the outer 1px of that border. Applying -webkit-appearance: textfield
addresses these issues without removing the benefits of search inputs (e.g.
showing past searches).
legend
Adding border: 0
corrects an IE 8–11 bug where color
(yes, color
) is not
inherited by legend
.
Please read the CONTRIBUTING.md
Normalize.css is a project by Nicolas Gallagher, co-created with Jonathan Neal.