em vs rem code example

Example 1: rem vs em

em -> is relative to the font-size of its direct or nearest parent 
rem -> is relative to the html (root) font-size

Example 2: em vs rem

1EM or 1REM (r = root em)
The difference is inheritance.
The Rem value is based on the root element (html).
What is meant here is the font size for html and not the font size for the documet body.
... Em is based on the font size of each
Parent element.

Example 3: rem vs em

/* rem */
Translation of rem units to pixel value is determined by the font size
of the html element. This font size is influenced by inheritance from 
the browser font size setting unless explicitly overridden with a unit 
not subject to inheritance (px or vw). 

/* em */
Translation of em units to pixel values is determined by the font size 
of the element they’re used on. This font size is influenced by 
inheritance from parent elements unless explicitly overridden with 
a unit not subject to inheritance. ---> change the menu’s font size the
spacing (paddings etc) around the menu items will scale proportionately,
independently of the rest of the layout.

Example 4: difference between rem and em css

Explanation: If you run these code you understand differences between rem vs em
In this example, font-size of first h1 is 48px (nearest parent) and font-size 
of second h1 is 32px ( parent of page which is html)
<style>
  html {
    font-size: 32px;
  }
  .font {
    font-size: 48px;
  }
  .em {
    font-size: 1em;
  }
  .rem {
    font-size: 1rem;
  }
</style>
<body>
  <div class="font">
    <h1 class="em">Hey guys!</h1>
  </div>
  <div class="font">
    <h1 class="rem">Hey guys!</h1>
  </div>
</body>