Acho que um dos maiores concensos dentro do desenvolvimento de interfaces para web é resetar o CSS padrão antes do início do desenvolvimento.
Isso porque cada browser tem os seus próprios valores padrão para margens, paddings, bordas, etc… dos elementos do CSS.
Todo mundo tem o seu método de fazer isso. Eu, há algum tempo, uso uma folha de estilos separada – normalmente chamada reset.css – com o código abaixo, e a chamo como primeiro include nos htmls:
*{outline-color:invert;outline-style:none;outline-width:medium;} 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, 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-weight: normal; font-style: inherit; font-size: inherit; font-family: inherit; vertical-align: baseline; } :focus {outline: 0; } body {line-height: 1; color: black; background: white; font-size:100.01%;} ol, ul { list-style: none;} table { border-collapse: separate; border-spacing: 0;} caption, th, td { text-align: left; font-weight: normal;} blockquote:before, blockquote:after, q:before, q:after {content: "";} blockquote, q {quotes: "" "";} strong{ font-weight: bold; } body,input,select,textarea { font-size: inherit; }