Em et rem sont des unités relatives basées sur les polices de caractères et il est différent d'utiliser ems pour les polices ou pour la longueur, donc ems et rems sont tous deux basés sur les polices de caractères mais la différence entre eux est que ems utilise l'attribut parent ou le actuel comme référence, tandis que rems utilise la taille de la police racine comme référence.
Si nous voulons utiliser des ems pour les tailles de police, la référence est simplement la taille de police calculée par les parents, comme c'est le cas pour les pourcentages.
Dans l'exemple ci-dessous, une taille de police de trois em sur l'élément enfant header donne 72 pixels, tout simplement parce qu'il s'agit de trois fois la taille de la police parent, soit (150/100)*16=24px. Pour la longueur, c'est un peu différent. Le remplissage de 2em sur l'en-tête, puisqu'il s'agit d'une mesure de longueur, utilise la taille de police de l'élément actuel comme référence et nous savons déjà qu'elle est de 24 pixels, donc 2em donnera un remplissage de 48 pixels, compris ? C'est une différence subtile, mais importante. Lorsque vous utilisez em, si c'est pour les polices, la référence est le parent et pour la longueur, la référence est l'élément actuel.
html,body{
font-size:16px;
width:80vw;
}
header{
font-size:150%;
padding 2em;
margin-bottom:10rem;
height:90vh;
widht 1000px;
}
header-child{
font-size:3em;
padding:10%;
}
En ce qui concerne le rem, il fonctionne en fait de la même manière pour les tailles de police et les longueurs car il utilise toujours la taille de police racine comme référence. Cela signifie que le remplissage de 10 rem que nous avons ici donnera 160 pixels car la taille de la police racine est de 16.