Sobre cajas y prácticas
El Talmud
En mis inicios con la programación web me encontré con un problema.
Por ejemplo: si inserto una imagen y le pongo un width 200px, en realidad no ocupa 200px sino que se suman los valores por defecto del margin y el padding por poner algunos.
Sabemos que los navegadores además de las hojas de estilo que podamos agregar, le asignan valores por defecto a distintos atributos
Esto se debe al “modelo de caja” predeterminado, en donde el tamaño width incluye solo la parte visible del elemento

Ademas aunque todos los navegadores coinciden en algunos valores importantes (tipo de letra serif, color de letra negro, etc.) presentan diferencias en valores tan importantes como los márgenes verticales (margin-bottom y margin-top) de los títulos de sección (h1, ...h6), la tabulación izquierda de los elementos de las listas (margin-left o padding-left según el navegador) y el tamaño de línea del texto (line-height).
Una recomendación para corregir esto desde CSS seria:
html {
box-sizing: border-box;
}
*, *:before, *:after {
box-sizing: inherit;
margin: 0;
padding: 0;
}
Otra la solución consiste en crear una hoja de estilos CSS que “normalice” todos los estilos que aplican por defecto los navegadores y que pueden afectar al aspecto visual de las páginas. Este tipo de hojas de estilos se suelen llamar "reset CSS".
Un gran ejemplo de esto y la recomendación final es nomalize.css.