Cualquiera que escriba CSS, antes o después se topa con los CSS Reset. La gran mayoría de frameworks usan uno, ya sea uno conocido de los que veremos a continuación, o uno propio. Pero, ¿Qué es un CSS Reset?

Antes de explicar eso, debemos recordar que todos los navegadores web usan unos estilos CSS por defecto para que cuando abrimos un fichero HTML sin estilos CSS, o no establecemos estilos para un elemento en concreto, todo se vea correctamente, con jerarquía y coherencia. El problema nos surge a partir de que estos estilos por defecto de los navegadores non son exactamente iguales, y eso puede provocar que nuestra web se vea de formas distintas dependiendo del navegador con la que la visiten.

Un CSS Reset es un archivo con un conjunto de reglas CSS destinadas a unificar o resetear todos estos estilos por defecto que carga nuestra web. Aunque solemos llamarlos CSS Resets, lo cierto es que a grandes rasgos los hay de dos tipos muy distintos:  Los que resetean todos lo estilos, o los que simplemente buscan unificarlos corrigiendo diferencias entre navegadores.

Uno de los más conocidos -y más contundentes- es el de Meyer. Elimina y resetea las propiedades más comunes a todos los elementos HTML.

Richard Clark publicó en la web HTML5 Doctor una versión modificada y ampliada del CSS Reset de Meyer llamada HTML5 Reset Stylesheet.

Pero sin lugar a dudas, el más conocido y usado es Normalize.css de Nicolas Gallagher. La mayoría de frameworks y webs lo usan, pero su función no es la de resetear todos los estilos, sinó la de unificarlos lo máximo posible, pero respetando la mayoría de los estilos por defecto de los navegadores. También se centra en corregir algunos bugs.

Otro muy conocido y parecido al anterior es Santize.css, de Jonathan Neal.

Estos resets son muy útiles y casi diría que necesarios, el -gran- problema que le encuentro es que muchas reglas CSS son opiniables, pues simplemente son la percepción del programador que escribe el código, que cree que debe de ser así. Es por eso que estos proyectos más conocidos tienen muchos forks o incluso hai creaciones a medida para distintos frameworks o proyectos. Por ejemplo, la nueva versión de Bootstrap 4 deja de lado Normalize.css y crea su propio fork llamado Reboot.scss.

Personalmente opté por la misma solución para mi framework Bramework, y creé una versión personalizada que llamé Standarize.scss. Los motivos son que, en mi opinión, Normalize.css es demasiado extenso y subjetivo en algunos aspectos. Yo no necesito normalizar los estilos de no-se-qué extraña etiqueta HTML para IE7. Por supuesto, otros proyectos sí pueden necesitarlo. Así que lo que hice fué sacar todo lo que me parecía prescindible, y añadir algunos pequeños detalles que sí me parecen importantes y que en Normalize.css no estaban.

Os recomiento que visitéis los CSS Resets de los que hemos hablado y analicéis el código en profundidad, pues ademáis de aprender mucho podréis ver cuál se adapta mejor a vuestras necesiades.

Un saludo.