Langsung ke konten utama

[Medium] CSS Units

1. Apa perbedaan antara px, em, rem, vw, dan vh?​

Perbandingan singkat​

UnitTipeRelatif terhadapPenggunaan umum
pxMirip absolutCSS pixelBorder, shadow, detail halus
emRelatifUkuran font elemen (atau parent untuk font-size)Jarak/skala lokal
remRelatifUkuran font root (html)Tipografi dan jarak global
vwRelatif1% lebar viewportWidth/layout yang fleksibel
vhRelatif1% tinggi viewportBagian dengan tinggi penuh

2. Perilaku unit dengan contoh​

px​

.card {
border: 1px solid #d1d5db;
border-radius: 8px;
}

Gunakan untuk detail visual yang tajam.

em​

.button {
font-size: 1rem;
padding: 0.5em 1em;
}

Padding akan menyesuaikan dengan ukuran font elemen ini.

rem​

html {
font-size: 16px;
}

h1 {
font-size: 2rem; /* 32px */
}

Sangat baik untuk ukuran yang konsisten di seluruh komponen.

vw dan vh​

.hero {
min-height: 100vh;
padding-inline: 5vw;
}

Gunakan untuk layout yang bergantung pada viewport.

3. Unit berguna lainnya​

%

Relatif terhadap ukuran parent/referensi.

.container {
width: 80%;
}

vmin dan vmax​

  • 1vmin: 1% dari sisi viewport yang lebih kecil
  • 1vmax: 1% dari sisi viewport yang lebih besar

ch​

Kira-kira selebar karakter 0. Berguna untuk panjang baris yang mudah dibaca.

.prose {
max-width: 65ch;
}

4. Aturan praktis​

  • Gunakan rem untuk font dan skala jarak
  • Gunakan px untuk border/efek garis tipis
  • Gunakan % untuk container yang fleksibel
  • Gunakan vw/vh untuk bagian yang bergantung pada viewport
  • Gunakan em ketika Anda ingin penskalaan lokal pada komponen

5. Catatan viewport di perangkat mobile​

Pada browser mobile, address bar yang dinamis dapat membuat 100vh tidak stabil.

Gunakan unit yang lebih baru jika didukung:

  • dvh: dynamic viewport height
  • svh: small viewport height
  • lvh: large viewport height
.full-screen {
min-height: 100dvh;
}

6. Jawaban cepat untuk wawancara​

Q1: Mengapa banyak tim lebih memilih rem daripada px untuk tipografi?​

Karena memusatkan penskalaan dari font-size root dan meningkatkan konsistensi.

Q2: Mengapa em yang bersarang bisa rumit?​

Karena nilainya bertumpuk berdasarkan ukuran font lokal, yang bisa membesar secara tidak terduga.

Q3: Kapan px masih menjadi pilihan yang tepat?​

Untuk detail visual yang presisi seperti border, shadow, dan penyesuaian posisi ikon.