Code: Reset Style Sheet

From Chapter 7: CSS Optimization

One solution to overly specific CSS selectors and cross-browser compatibility is to use a reset stylesheet. Advocated by Eric Meyer and Yahoo!, reset stylesheets set up a known set of default style rules to equalize browser rendering behavior. An example from Eric Meyer follows:

html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, font, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td {
    margin: 0;
    padding: 0;
    border: 0;
    outline: 0;
    font-size: 100%;
    vertical-align: baseline;
    background: transparent;
}
body {
    line-height: 1;
} 
ol, ul {
    list-style: none;
}
blockquote, q {
    quotes: none;
}
blockquote:before, blockquote:after,
    q:before, q:after {
    content: '';
    content: none;
}
/* remember to define focus styles! */
:focus {
    outline: 0;
}
/* remember to highlight inserts somehow! */
ins {
    text-decoration: none;
}
del {
    text-decoration: line-through;
}
/* tables still need 'cellspacing="0"' in the markup */
table {
    border-collapse: collapse;
    border-spacing: 0;
}

This reset stylesheet zeros out margins, padding, borders, and outlines for all type selectors (this is more efficient than the universal selector * because of CPU overhead), as well equalizing font size to 100%, setting vertical-align to baseline to equalize browser differences, and so on:

margin: 0;
padding: 0;
border: 0;
outline: 0;
font-size: 100%;
vertical-align: baseline;
background: transparent;

Note that this reset stylesheet is intentionally left generic. You should customize it to match your preferences with text, background, and link colors.

Further Reading