What is sanitize.css?
The sanitize.css package is a CSS library that provides consistent, cross-browser default styling for HTML elements. It's designed to normalize styles across different browsers, remove default margins, and apply a consistent box-sizing model. This helps in creating a more predictable styling baseline for web projects.
What are sanitize.css's main functionalities?
Normalize styles
This code ensures that every element on the page, including pseudo-elements, inherits the box-sizing property from the html element, which is set to border-box. This makes it easier to manage layouts as it includes padding and border in the element's total width and height.
html { box-sizing: border-box; } *, *::before, *::after { box-sizing: inherit; }
Remove default margins
This code removes the default margins from common elements like body, headings, paragraphs, and others. It provides a clean slate for adding custom spacing without having to override browser defaults.
body, h1, h2, h3, h4, h5, h6, p, figure, blockquote, dl, dd { margin: 0; }
Set default font-family
This sets the default font family to sans-serif for the entire HTML document, ensuring a consistent typography baseline across different browsers.
html { font-family: sans-serif; }
Other packages similar to sanitize.css
normalize.css
normalize.css is a popular CSS reset library that aims to normalize styles across browsers. It focuses on fixing common inconsistencies and preserving useful defaults rather than unifying all styles like sanitize.css. While both aim to provide a consistent styling baseline, normalize.css is more about correcting quirks without imposing a specific styling philosophy.
reset-css
reset-css is another CSS reset library that aims to strip away all default browser styling on elements. Unlike sanitize.css, which applies minimalistic default styles and normalizes differences, reset-css provides a clean slate by removing all styles, allowing developers to start styling from scratch.
sanitize.css
Render elements consistently. Style with best practices.
Installation
Bower
bower install --save sanitize-css
NPM
npm install sanitize.css
Sass
@import 'vendors/sanitize.scss';
CSS
@import url(vendors/sanitize.css);
Highlights
Differences
Sanitize.css styles browsers to render elements more consistently with developer expectations and preferences. Normalize.css styles browsers to render elements more consistently with each other. Reset.css unstyles every element. Each one has its own advantages.
In Sanitize.css, CSS inheritance is assigned universally so that styles cascade naturally and consistently. Wherever possible, the box model operates more intuitively. Every normalization and opinionated default is carefully documented, and most are configurable from Sass.
Options
To give you complete control, sanitize.css is available in three flavors; CSS, SCSS, and Stylus. Each flavor allows you to define your own defaults for box-sizing, font family, text rendering, selection, etc. - all without over-declaring them later.
:root {
--root-font-family: "Open Sans", sans-serif;
--root-text-rendering: optimizeSpeed;
}
import url('vendors/sanitize.css');
$root-font-family: "Open Sans", sans-serif;
$root-text-rendering: optimizeSpeed;
import 'vendors/sanitize.scss';
// overwrite defaults in sanitize.scss
root-font-family = "Open Sans", sans-serif
root-text-rendering = optimizeSpeed
@import "vendors/sanitize.styl"
- root-background-color: the default background color is
#FFFFFF
. - root-box-sizing: the default box-sizing is
border-box
. - root-color: the default text color is
#000000
. - root-cursor: the default cursor is
default
. - root-font-family: the default font family is
sans-serif
. - root-font-size: the default font size
100%
. - root-line-height: the default line height is
1.5
. - root-text-rendering: the default text-rendering is
optimizeLegibility
. - anchor-text-decoration: the default anchor text decoration is
none
. - background-repeat: the default background repeat is
no-repeat
. - form-element-background-color: the default form background color is
transparent
. - form-element-min-height: the default form element minimum height is
1.5em
- media-element-vertical-align: the default vertical alignment for media elements is
middle
. - monospace-font-family: the default font for code elements is
monospace
. - nav-list-style: the default list style for navigation lists is
none
. - selection-background-color: the default selection background color is
#b3d4fc
. - selection-color: the default selection text color is
#ffffff
. - selection-text-shadow: the default select text shadow is
none
. - small-font-size: the default font size for small elements is
75%
. - table-border-collapse: the default border collapse for tables is
collapse
. - table-border-spacing: the default border spacing for tables is
0
. - textarea-resize: the default resize for textarea’s is
vertical
.
Support
At present, we support the current and previous major releases of popular web browsers. When a new version is released, we begin supporting that version and stop supporting the third most recent version. Many older browsers happen to be remain supported using the same CSS without additional needs.
Currently tested and supported browsers include Android 4.3-4.4+, Chrome 39-45+, Edge 12+, Firefox 34-40+, Internet Explorer 9-11, iOS 7-8+, Safari 7-9+, Windows Phone 8.1+.
License
sanitize.css is dedicated to the public domain.