หน่วย rem ใน CSS

หน่วย em ไม่สะดวกสบายเสมอไป ปัญหา คือถ้าเปลี่ยนขนาดฟอนต์ให้กับอิลิเมนต์หนึ่ง มันจะเปลี่ยนไปสำหรับอิลิเมนต์ลูกทั้งหมดด้วย ซึ่งคำนวณขนาดของตัวเองสัมพันธ์กับมัน

ดังนั้นจึงมีการนำหน่วย rem มาใช้ ค่าของหน่วยเหล่านี้จะถูกคำนวณเสมอ สัมพันธ์กับขนาดฟอนต์ที่กำหนดให้กับ อิลิเมนต์ html

อย่างที่คุณทราบแล้ว ค่าเริ่มต้น คือ 16px:

csshtml {
  font-size: 16px;
}

ลองดูตัวอย่าง สมมติว่าเรามี อิลิเมนต์ดังนี้:

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

ลองกำหนดขนาดเป็น rem ให้พวกมัน:

cssdiv {
  font-size: 2rem; /* เท่ากับ 32px */
}
p {
  font-size: 2rem; /* เท่ากับ 32px */
  margin: 2rem;    /* เท่ากับ 32px */
}
Задание 1

สมมติว่าเรามีโค้ด HTML ซึ่งเราจะ ใช้แก้โจทย์ปัญหา:

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>

เขียนใหม่เป็น rem สำหรับทุกหน่วยที่กำหนดเป็นพิกเซล:

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;
}