Nem todos os navegadores são desenvolvidos da mesma forma. Na verdade, cada browser é diferente. Qual é a margem padrão ou tamanho de fonte de um elemento <p>? Você pode se surpreender com a grande variedades de valores. Para lidar com as diferenças entre os navegadores, nós podemos nivelar o campo e começar do zero, usando as folhas de estilo CSS “Reset”.
Os primeiros recursos de Resets tratavam valores como margem e padding, usando uma redefinição global que era mais ou menos assim:
* { margin: 0; padding: 0; }
Porém, com o aumento de número de pessoas utilizando e discutindo as folhas de Reset, ficou claro que a reposição de margem e padding não eram suficiente (e, aplicar a regra acima, para todos os elementos era desgastante para o motor de renderização). Graças ao trabalho de Eric Meyer e outros pioneiros, um melhor e mais completo conjunto de regras de reset foi criado:
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: inherit;
font-style: inherit;
font-size: 100%;
font-family: inherit;
vertical-align: baseline;
}
/* lembre-se de definir o foco! */
:focus {
outline: 0;
}
body {
line-height: 1;
color: black;
background: white;
}
ol, ul {
list-style: none;
}
/* as tabelas ainda precisam de 'cellspacing="0"' no markup */
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: "" "";
}
É importante notar quais são os elementos incluído nos Reset CSS mais populares disponíveis hoje. Também é importante observar alguns dos elementos que são deliberadamente excluídos desta lista:
Estes elementos foram excluídos porque suas variações para cada navegador são tantas que você teria que desestilizá-los completamente para criar um elemento “funcional”. E eles são tão diferentes, que mesmo assim, não há nenhuma garantia.