ToolDeck

CSS Unit Converter

Konversi satuan CSS antara px, rem, em, vw, vh dan %

px16
rem1
em1
vw1.111111
vh1.777778
%100
pt12
cm0.4233331
mm4.233331
in0.1666667

Apa itu Konversi Satuan CSS?

Konverter satuan CSS adalah alat yang mengubah nilai panjang antar sistem pengukuran CSS yang berbeda. CSS mendefinisikan lebih dari selusin satuan panjang, dibagi menjadi dua kelompok: satuan absolut seperti px, pt, cm, dan in yang dipetakan ke pengukuran fisik tetap, serta satuan relatif seperti rem, em, vw, vh, dan % yang bergantung pada konteks seperti ukuran font atau dimensi viewport.

Browser mengubah semua panjang CSS menjadi piksel saat rendering. Ketika Anda menulis 1.5rem, browser mengalikan 1.5 dengan ukuran font root (biasanya 16px) untuk mendapatkan 24px. Ketika Anda menulis 50vw, browser mengambil setengah dari lebar viewport saat ini. Memahami hubungan ini penting untuk membangun tata letak yang responsif di berbagai perangkat dan menghormati preferensi pengguna seperti ukuran font kustom yang diatur di browser.

Spesifikasi CSS Values and Units Module Level 4 (W3C) mendefinisikan rasio konversi tepat antar semua satuan absolut: 1in = 96px = 72pt = 2.54cm = 25.4mm. Satuan relatif tidak memiliki rasio tetap karena bergantung pada konteks saat runtime. Konverter satuan CSS gratis memungkinkan Anda menghitung hubungan ini secara instan berdasarkan ukuran font root dan dimensi viewport spesifik Anda, tanpa perlu menulis kode apapun.

Mengapa Menggunakan Konverter Satuan CSS?

Mengonversi antar satuan CSS secara manual berarti mengingat rasio, membuka kalkulator, dan memeriksa ulang perhitungan. Alat ini melakukan konversi di browser Anda tanpa hambatan apapun.

Konversi Instan
Masukkan nilai, pilih satuan sumber, dan lihat hasilnya dalam semua 10 satuan CSS sekaligus. Tidak perlu melakukan perhitungan terpisah untuk px-ke-rem, px-ke-vw, atau px-ke-pt.
🔒
Data Anda Tetap Privat
Semua konversi berjalan secara lokal di browser Anda. Tidak ada nilai yang dikirim ke server, dicatat, atau disimpan. Tutup tab dan data hilang.
🎯
Sesuaikan dengan Konteks Anda
Atur ukuran font root, lebar viewport, tinggi viewport, dan ukuran font parent. Konverter menggunakan nilai-nilai ini untuk menghasilkan hasil yang akurat untuk satuan rem, em, vw, vh, dan %.
📏
Mencakup Semua Satuan Panjang CSS
Mendukung px, rem, em, vw, vh, %, pt, cm, mm, dan in. Baik Anda bekerja dengan tata letak layar, stylesheet cetak, maupun tipografi responsif, setiap satuan telah tercakup.

Kasus Penggunaan Konverter Satuan CSS

Pengembangan Frontend
Konversi nilai piksel dari file desain ke rem untuk component library. Ketika mockup Figma menentukan spasi 24px, konversikan ke 1.5rem agar tata letak menyesuaikan dengan preferensi ukuran font pengguna.
Rekayasa Backend / Full-Stack
Buat template PDF atau email di mana dimensi ditentukan dalam pt atau cm. Konversi nilai piksel CSS ke ukuran point siap cetak untuk server-side rendering dengan alat seperti Puppeteer atau wkhtmltopdf.
DevOps / Pipeline CI
Validasi bahwa token spasi design system menggunakan satuan yang konsisten di seluruh langkah build. Verifikasi dengan cepat bahwa basis 16px menghasilkan nilai rem yang diharapkan dalam CSS yang dihasilkan.
QA / Pengujian Visual
Verifikasi computed style selama pengujian lintas browser. Ketika Chrome DevTools menampilkan computed value 14.4px, konversikan ke rem untuk memastikan nilainya sesuai dengan 0.9rem yang diharapkan dari stylesheet.
Visualisasi Data
Ukur elemen SVG atau canvas relatif terhadap dimensi viewport. Konversi lebar chart piksel tetap ke satuan vw agar visualisasi mengisi persentase layar yang konsisten di berbagai monitor.
Belajar CSS
Pahami hubungan antara rem, em, dan px dengan bereksperimen menggunakan ukuran dasar yang berbeda. Ubah ukuran font root dari 16px ke 18px dan lihat bagaimana setiap nilai rem berubah.

Referensi Satuan Panjang CSS

CSS mendefinisikan 10 satuan panjang yang umum digunakan. Satuan absolut memiliki konversi tetap ke piksel. Satuan relatif bergantung pada konteks: ukuran font root untuk rem, ukuran font parent untuk em, dan viewport browser untuk vw dan vh.

SatuanNamaUkuran defaultRelatif terhadap
pxPixel1pxFixed; 1px = 1/96 of 1in on screens
remRoot em16px (default)Relative to <html> font-size
emEmInheritedRelative to parent element font-size
vwViewport width1% of viewportRelative to browser window width
vhViewport height1% of viewportRelative to browser window height
%PercentageVariesRelative to parent property value
ptPoint1.333pxPrint unit; 1pt = 1/72 of 1in
cmCentimeter37.795pxPhysical unit; 1cm = 96px / 2.54
mmMillimeter3.7795pxPhysical unit; 1mm = 1cm / 10
inInch96pxPhysical unit; 1in = 96px (CSS spec)

Satuan CSS Absolut vs Relatif

Memilih antara satuan absolut dan relatif memengaruhi bagaimana tata letak Anda merespons berbagai layar dan pengaturan pengguna. Setiap kelompok memiliki trade-off yang berbeda.

Satuan Absolut (px, pt, cm, mm, in)
Satuan absolut menghasilkan ukuran fisik yang sama terlepas dari konteksnya. Gunakan px untuk border, shadow, dan elemen yang tidak perlu diskalakan. Gunakan pt untuk stylesheet cetak. Spesifikasi CSS mendefinisikan 1in = 96px, meskipun ukuran fisik sebenarnya bervariasi berdasarkan DPI layar.
Satuan Relatif (rem, em, vw, vh, %)
Satuan relatif menyesuaikan diri dengan konteks referensinya. Gunakan rem untuk ukuran font dan spasi agar menghormati preferensi pengguna. Gunakan em untuk penskalaan internal komponen (padding relatif terhadap ukuran font elemen itu sendiri). Gunakan vw/vh untuk tata letak yang memenuhi viewport seperti bagian hero.

Tabel Konversi px ke rem yang Umum

Tabel ini mengasumsikan ukuran font root 16px (default browser). Jika proyek Anda menggunakan dasar yang berbeda, bagi nilai piksel dengan dasar Anda untuk mendapatkan ekuivalen rem.

pxremptPenggunaan umum
100.6257.5Small caption text
120.759Body text (compact)
140.87510.5Default body text
16112Root font-size (browser default)
181.12513.5Large body text
201.2515H4 heading
241.518H3 heading
32224H2 heading
48336H1 heading
64448Display / hero text

Contoh Kode

Contoh-contoh berikut menunjukkan cara mengonversi satuan CSS secara programatik dalam JavaScript, Python, CSS custom properties, dan Sass.

JavaScript
// px to rem (given root font-size of 16px)
const pxToRem = (px, base = 16) => px / base
pxToRem(24)  // → 1.5

// rem to px
const remToPx = (rem, base = 16) => rem * base
remToPx(1.5) // → 24

// px to vw (given viewport width of 1440px)
const pxToVw = (px, viewport = 1440) => (px / viewport) * 100
pxToVw(360)  // → 25

// Dynamic calculation using getComputedStyle
const rootFontSize = parseFloat(
  getComputedStyle(document.documentElement).fontSize
) // → 16 on most browsers
Python
# CSS unit converter functions

def px_to_rem(px: float, base: float = 16) -> float:
    return px / base

def rem_to_px(rem: float, base: float = 16) -> float:
    return rem * base

def px_to_vw(px: float, viewport: float = 1440) -> float:
    return (px / viewport) * 100

def px_to_pt(px: float) -> float:
    return px * 72 / 96

print(px_to_rem(24))     # → 1.5
print(rem_to_px(2.5))    # → 40.0
print(px_to_vw(720))     # → 50.0
print(px_to_pt(16))      # → 12.0
CSS (calc & custom properties)
/* Define a base scale using rem */
:root {
  --base: 16px;       /* root font-size */
  --space-1: 0.25rem; /* 4px */
  --space-2: 0.5rem;  /* 8px */
  --space-4: 1rem;    /* 16px */
  --space-8: 2rem;    /* 32px */
}

/* Fluid typography: scales between 1rem (16px) and 2.5rem (40px) */
h1 {
  font-size: clamp(1rem, 2.5vw + 0.5rem, 2.5rem);
}

/* Viewport-relative hero height */
.hero {
  height: calc(100vh - 4rem); /* full viewport minus 64px header */
}

/* Percentage-based grid */
.sidebar { width: 25%; }     /* 360px on 1440px screen */
.content { width: 75%; }     /* 1080px on 1440px screen */
SCSS (mixin)
// Reusable px-to-rem function in Sass
@use "sass:math";

$base-font-size: 16px !default;

@function rem($px) {
  @return math.div($px, $base-font-size) * 1rem;
}

// Usage
.card {
  padding: rem(24px);       // → 1.5rem
  margin-bottom: rem(32px); // → 2rem
  border-radius: rem(8px);  // → 0.5rem
  font-size: rem(14px);     // → 0.875rem
}

Pertanyaan yang Sering Diajukan

Berapa ukuran font root default di browser?
Semua browser utama (Chrome, Firefox, Safari, Edge) memiliki ukuran font root default 16px. Artinya 1rem = 16px kecuali pengguna atau stylesheet mengganti ukuran font elemen html. Beberapa pengguna meningkatkan ini di pengaturan browser untuk aksesibilitas, itulah mengapa rem adalah pilihan default yang lebih baik untuk teks dibandingkan px.
Bagaimana cara mengonversi px ke rem?
Bagi nilai piksel dengan ukuran font root. Dengan basis default 16px: 24px / 16 = 1.5rem. Jika proyek Anda menetapkan html { font-size: 10px } (reset yang umum digunakan), maka 24px / 10 = 2.4rem. Rumusnya selalu: rem = px / ukuran-font-root.
Apa perbedaan antara rem dan em?
rem bersifat relatif terhadap ukuran font elemen root (tag html), sementara em bersifat relatif terhadap ukuran font parent dari elemen saat ini. Artinya rem menghasilkan ukuran yang konsisten di seluruh halaman, sementara em bertambah berlipat ketika bersarang. Nilai 2em di dalam parent 2em menjadi 4x ukuran root. Gunakan rem untuk spasi global dan ukuran font; gunakan em ketika Anda ingin ukuran menyesuaikan dengan teks komponen itu sendiri.
Kapan harus menggunakan satuan vw atau vh?
Gunakan vw untuk elemen yang harus menyesuaikan dengan lebar jendela browser, seperti bagian hero lebar penuh atau tipografi fluid (clamp dengan vw). Gunakan vh untuk bagian layar penuh atau tata letak tinggi viewport. Berhati-hatilah dengan vh di browser mobile di mana address bar mengubah tinggi viewport; satuan dvh (dynamic viewport height) yang lebih baru mengatasi masalah ini.
Bisakah saya mencampur satuan CSS yang berbeda dalam properti yang sama?
Ya. Fungsi CSS calc() memungkinkan Anda menggabungkan satuan apapun dalam satu ekspresi. Misalnya, width: calc(100vw - 2rem) mengurangi 32px (pada basis default) dari lebar viewport penuh. Anda juga dapat mencampur satuan dalam clamp(): font-size: clamp(1rem, 2vw + 0.5rem, 2.5rem) menciptakan tipografi fluid yang menyesuaikan antara 16px dan 40px.
Berapa piksel untuk 1pt dalam CSS?
Dalam CSS, 1pt = 1/72 inci, dan 1 inci = 96px, sehingga 1pt = 96/72 = 1.333px. Rasio ini tetap dalam spesifikasi CSS terlepas dari DPI layar. Point terutama digunakan dalam stylesheet cetak dan pembuatan PDF. Untuk desain layar, px atau rem adalah pilihan yang lebih baik.
Apakah reset font-size 62.5% masih praktik yang baik?
Menetapkan html { font-size: 62.5% } membuat 1rem = 10px, yang menyederhanakan perhitungan mental (24px = 2.4rem). Namun, pendekatan ini mengharuskan Anda menetapkan font-size secara eksplisit pada elemen body dan dapat menyebabkan masalah dengan komponen pihak ketiga yang mengasumsikan basis default 16px. Preferensi modern adalah mempertahankan default 16px dan menggunakan fungsi Sass atau plugin PostCSS untuk menangani konversi.