DevToolPal
ไทย

แปลง PX เป็น REM

แปลง px เป็น rem หรือ em (และกลับกัน) ด้วยขนาดฟอนต์ฐานที่กำหนดเอง ดูตารางเทียบ และแปลงค่า px ทั้งหมดใน CSS ที่วางได้ในครั้งเดียว

ทำงานในเครื่อง ไม่มีการอัปโหลด

ตัวเลือก

ทิศทาง
หน่วย

CSS หรือค่า

0 ตัวอักษร · 0 B

ผลลัพธ์

ผลลัพธ์จะแสดงที่นี่

ใช้ทำอะไร

เครื่องมือนี้แปลงความยาวใน CSS ระหว่างพิกเซลกับหน่วยสัมพัทธ์ rem และ em พิมพ์ค่าเดียวอย่าง 24px เพื่อได้ 1.5rem ใส่หลายค่าบรรทัดละค่าเพื่อแปลงพร้อมกัน หรือวางสไตล์ชีตทั้งไฟล์แล้วค่า px ทุกค่าจะถูกเขียนใหม่ในที่เดิม ตารางอ้างอิงแสดงขนาดที่ใช้บ่อยตั้งแต่ 1px ถึง 128px ตามขนาดฐานของคุณ ไม่มีข้อมูลใดออกจากเบราว์เซอร์

วิธีใช้

  1. วาง CSS หรือพิมพ์ค่าบรรทัดละหนึ่งค่า ตัวเลขที่ไม่มีหน่วยจะถือเป็น px (หรือ rem/em เมื่อกลับทิศทาง) และค่าที่เขียนด้วยอีกหน่วยจะถูกแปลงในทิศตรงข้าม
  2. ตั้ง ขนาดฟอนต์ฐาน เบราว์เซอร์ทุกตัวใช้ 16px เป็นค่าเริ่มต้น บางโปรเจกต์ใช้ html { font-size: 62.5% } เพื่อให้ 1rem = 10px
  3. เลือก ทิศทาง (px → rem หรือ rem → px) หน่วย (rem หรือ em) และจำนวน ทศนิยม ที่ต้องการ
  4. หากต้องการ ตั้ง คงเป็น px ถ้าน้อยกว่า เพื่อให้เส้นขอบ 1px และเส้นบางอื่น ๆ ยังเป็น px
  5. คัดลอกผลลัพธ์ด้วยปุ่มด้านบน

ตัวอย่าง

/* before */
.title { font-size: 24px; margin-bottom: 12px; }

/* after (base 16px) */
.title { font-size: 1.5rem; margin-bottom: 0.75rem; }

ค่าที่ไม่ใช่ px เช่น เปอร์เซ็นต์ สี ชื่อไฟล์ใน url() และชื่อคลาสอย่าง .mt-16px จะไม่ถูกแก้ไข 0px จะกลายเป็น 0

px, rem และ em

  • px เป็นหน่วยสัมบูรณ์ ไม่สนใจขนาดฟอนต์ที่ผู้อ่านตั้งไว้
  • rem (“root em”) คือผลคูณของขนาดฟอนต์ขององค์ประกอบ html ถ้าผู้อ่านตั้งเบราว์เซอร์เป็น 20px แล้ว 1rem จะเท่ากับ 20px และทั้งเลย์เอาต์จะย่อขยายตาม
  • em คือผลคูณของขนาดฟอนต์ขององค์ประกอบปัจจุบัน เหมาะกับระยะห่างที่ต้องตามตัวอักษรของมัน แต่ em ที่ซ้อนกันจะคูณกัน rem จึงเป็นค่าเริ่มต้นที่ปลอดภัยกว่า

Media query ก็ถูกแปลงด้วย @media (min-width: 768px) จะกลายเป็น 48rem (หรือ 48em) ทำให้ breakpoint สอดคล้องกันเมื่อผู้อ่านขยายตัวอักษร ใน media query ทั้ง rem และ em อ้างอิงขนาดฟอนต์เริ่มต้นของเบราว์เซอร์ ไม่ใช่กฎ html ของคุณ

คำถามที่พบบ่อย

› แปลง px เป็น rem อย่างไร?

นำค่าพิกเซลไปหารด้วยขนาดฟอนต์ของ root ถ้าใช้ค่าเริ่มต้นของเบราว์เซอร์ 16px จะได้ 24px ÷ 16 = 1.5rem และ 12px ÷ 16 = 0.75rem ถ้าจะแปลงกลับให้คูณ: 2rem × 16 = 32px

› rem กับ em ต่างกันอย่างไร?

rem อ้างอิงขนาดฟอนต์ขององค์ประกอบ root คือ html ดังนั้น 1rem มีขนาดเท่ากันทั้งหน้า ส่วน em อ้างอิงขนาดฟอนต์ขององค์ประกอบปัจจุบัน (หรือของพาเรนต์เมื่อเป็น font-size เอง) จึงคูณซ้อนกันเมื่อองค์ประกอบซ้อนกัน ใช้ rem กับขนาดส่วนใหญ่ และใช้ em เมื่อต้องการให้ย่อขยายตามตัวอักษรของตัวเอง เช่น padding ของปุ่ม

› ทำไมควรใช้ rem แทน px?

เมื่อผู้อ่านเพิ่มขนาดฟอนต์เริ่มต้นในการตั้งค่าเบราว์เซอร์ ขนาดที่เป็น rem จะใหญ่ขึ้นตาม แต่ px จะคงที่ rem ช่วยให้เลย์เอาต์เข้าถึงได้ง่ายและย่อขยายทั้งดีไซน์ได้ด้วยการเปลี่ยนค่า root เพียงค่าเดียว

› ควรแปลงเส้นขอบ 1px ไหม?

โดยทั่วไปไม่ควร เส้นบาง 0.0625rem อาจเบลอหรือหายไปในบางระดับการซูม ตั้ง “คงเป็น px ถ้าน้อยกว่า” เป็น 2px แล้วตัวแปลงจะคงเส้นขอบและค่าเล็ก ๆ อื่นไว้เป็น px