Reset CSS

Resetear los estilos CSS por defecto del navegador


Quizás habrás observado que los navegadores insertan ciertos estilos por defecto. Esto es fácil de comprobar, si sólo escribes HTML sin indicar ningún estilo CSS. Observarás que la página muestra algunos elementos con cierto estilo, como por ejemplo, que los <body> tienen márgenes o que los <h1> tienen un cierto tamaño y margen.

Observa este fragmento al que le añado un CSS mínimo con borde rojo para que se aprecie:

h1 {
  border: 1px solid red;
}

p {
  border: 1px solid red;
}
<h1>¡Hola!</h1>
<p>Esto es un ejemplo de LenguajeCSS.com, ¿Qué tal estás?</p>

Entre las cajas hay un borde rojo hay cierta cantidad de espacio. Esto ocurre porque los navegadores tienen un margen por defecto en los elementos <p> y <h1>.

No obstante, a parte de los citados márgenes, hay muchos otros estilos predeterminados del navegador, que incluso pueden variar dependiendo del navegador. Esto complica un poco el trabajo de hacer que se vean los estilos exactamente igual en diferentes navegadores.

¿Qué es un Reset CSS?

Muchos programadores prefieren resetear todos los estilos del navegador, de modo que sea mucho más sencillo que los estilos sean similares entre diferentes navegadores. Algunos de esos estilos son:

  • Resetear márgenes con margin: 0 en ciertos elementos como body, <h1> o <p>.
  • Utilizar propiedades como box-sizing para facilitar cálculos de dimensiones.
  • Utilizar display: inline-block para elementos por defecto inline que ignoran tamaños.

Estas son algunas de las tareas de reseteo más frecuentes. Sin embargo, existen muchas más.

Reseteos parciales

Muchos desarrolladores prefieren crear sus propias reglas CSS para resetear los estilos del navegador, por lo que insertan fragmentos de código CSS para hacerlo. Veamos un ejemplo, donde he decidido resetear los márgenes:

body {
  margin: 0;
}

h1, p {
  margin: 0;
  border: 2px solid red;
}
<h1>¡Hola!</h1>
<p>Esto es un ejemplo de LenguajeCSS.com, ¿Qué tal estás?</p>

Muy frecuentemente, algunos desarrolladores utilizan el selector * para aplicar reseteos. Ten mucho cuidado al hacer esto, porque con * le estás diciendo al navegador que a todos los elementos HTML le apliques un cierto estilo. Aunque puede ser lo que buscas, muchas veces puede ser poco eficiente o puedes estar modificando cosas que no deberías en todo el documento.

¿Qué Reseteos CSS existen?

Para hacer más sencilla esta tarea, muchos diseñadores han creado su propio «pack» de reseteos, donde contienen múltiples líneas de código CSS que eliminan estas particularidades, de forma que todos los navegadores actuén de forma mucho más predecible y se pueda escribir CSS sin cambios imprevistos.

Tradicionalmente, han habido muchos sistemas de reset en CSS, pero sólo algunos se han quedado hasta estos días. Citaré los que creo que son más conocidos y relevantes:

Sistema de reseteoDescripción
Reset CSSEl reset de Eric Meyer, históricamente, quizás el primero.
Normalize.cssUno de los reset más tradicionales y populares.
A Modern CSS ResetEl reseteo CSS de Andy Bell.
A CSS Reset for 2022CSS Reset 2022 de Mayank99
Reset CSS ProReset CSS de Eduardo Fierro.
CSS RemedyCSS Remedy, de Jen Simmons
PreflightReset CSS de Tailwind CSS
Josh W. ComeauUn reset moderno, explicado paso a paso.
Andy BellUn reset moderno de Andy Bell.
2024 CSS ResetSimple Reset CSS

Utilizar un sistema de reset CSS es decisión del desarrollador y no es algo obligatorio. En algunos casos, quizás pueda ayudar a que el desarrollador realice pasos en sus diseños de forma mucho más intuitiva.

Un poco más adelante exploraremos los estilos CSS definidos por defecto por el navegador, y hablaremos más profundamente de ellos.

¿Quién soy yo?

Soy Manz, vivo en Tenerife (España) y soy streamer partner en Twitch y profesor. Me apasiona el universo de la programación web, el diseño y desarrollo web y la tecnología en general. Aunque soy full-stack, mi pasión es el front-end, la terminal y crear cosas divertidas y locas.

Puedes encontrar más sobre mi en Manz.dev