Njësitë rem në CSS

Njësitë em nuk janë gjithmonë të përshtatshme. Problemi është se nëse ndryshon madhësinë e shkronjave për një tag, atëherë ajo do të ndryshojë edhe për të gjithë pasardhësit e tij, të cilët e llogarisin madhësinë e tyre relative me të.

Prandaj u prezantuan njësitë rem. Vlerat e këtyre njësive gjithmonë llogariten relative me madhësinë e shkronjave të përcaktuar për tagin html.

Siç e dini tashmë, si parazgjedhje kjo vlerë është 16px:

csshtml {
  font-size: 16px;
}

Le të shohim me një shembull. Le të themi se kemi këto tagje:

html<div>
  <p>
    text
  </p>
</div>

Le t'u caktojmë atyre madhësi në rem:

cssdiv {
  font-size: 2rem; /* i përgjigjet 32px */
}
p {
  font-size: 2rem; /* i përgjigjet 32px */
  margin: 2rem;    /* i përgjigjet 32px */
}
Задание 1

Le të themi se kemi kod HTML, për të cilin do të zgjidhim problema:

html<main>
  <h1>header</h1>
  <section>
    <h2>header</h2>
    <p>
      text
    </p>
    <p>
      text
    </p>
  </section>
  <section>
    <h2>header</h2>
    <p>
      text
    </p>
    <p>
      text
    </p>
  </section>
</main>

Rishkruani në rem të gjitha njësitë, të dhëna në piksel:

cssmain {
  margin: 64px auto 32px;
}

h1 {
  font-size: 32px;
}
section {
  font-size: 16px;
  margin-bottom: 32px;
}
h2 {
  font-size: 24px;
  margin-bottom: 32px;
}
p {
  font-size: 20px;
  margin-bottom: 12px;
}