Vou explicar em detalhes o CSS Reset proposto por Josh Comeau, que é uma abordagem moderna para normalizar estilos entre navegadores. Este reset é mais sofisticado que os tradicionais (como o de Eric Meyer) porque leva em conta particularidades de acessibilidade e renderização moderna.
/*
1. Use a more-intuitive box-sizing model.
*/
*, *::before, *::after {
box-sizing: border-box;
}
/*
2. Remove default margin
*/
* {
margin: 0;
}
/*
3. Allow percentage-based heights in the application
*/
html, body {
height: 100%;
}
/*
4. Add accessible line-height
5. Improve text rendering
*/
body {
line-height: 1.5;
-webkit-font-smoothing: antialiased;
}
/*
6. Improve media defaults
*/
img, picture, video, canvas, svg {
display: block;
max-width: 100%;
}
/*
7. Remove built-in form typography styles
*/
input, button, textarea, select {
font: inherit;
}
/*
8. Avoid text overflows
*/
p, h1, h2, h3, h4, h5, h6 {
overflow-wrap: break-word;
}
/*
9. Create a root stacking context
*/
#root, #__next {
isolation: isolate;
}
*, *::before, *::after {
box-sizing: border-box;
}
width/height
) de todos os elementos inclui
padding e borda, não apenas o conteúdo.content-box
) é contra-intuitivo pois adiciona
padding e borda ao tamanho total. Com border-box
, um elemento com width: 100px
e
padding: 20px
terá 100px no total.* {
margin: 0;
}
<body>
, <h1>-<h6>
, <p>
, etc.html, body {
height: 100%;
}
height
.body
não tem altura definida, então
height: 100%
em elementos filhos não funciona sem isso.body {
line-height: 1.5;
-webkit-font-smoothing: antialiased;
}
line-height: 1.5
define um espaçamento entre linhas acessível (em vez do padrão ~1.2)
-webkit-font-smoothing: antialiased
suaviza fontes em macOSimg, picture, video, canvas, svg {
display: block;
max-width: 100%;
}
block
(evita espaço extra abaixo de imagens)<img>
são inline
por padrão, o que
pode causar espaçamento indesejado.input, button, textarea, select {
font: inherit;
}
p, h1, h2, h3, h4, h5, h6 {
overflow-wrap: break-word;
}
#root, #__next {
isolation: isolate;
}
Este reset é ideal para: