BELAJAR CSS — SATUAN UKURAN UNTUK PEMULA

BELAJAR CSS

Mengenal Satuan Ukuran CSS

Dari px sampai clamp() — memahami ukuran CSS dengan bahasa sederhana, tanpa bikin kepala berasap.

Kalau selama ini kamu selalu memakai px, sebenarnya tidak masalah. Bahkan untuk banyak kebutuhan, px memang sangat nyaman. Tetapi ketika mulai membuat website yang responsif, kita akan bertemu dengan satuan lain seperti %, vw, vh, rem, dan clamp().

Jangan langsung mencoba menghafalkan semuanya. Kita kenalan satu per satu.

01 — Kenapa CSS punya banyak satuan?

Bayangkan kamu ingin membuat sebuah kotak. Kamu bisa mengatakan:

width: 500px;

Selesai. Kotaknya lebarnya 500 pixel.

Tetapi bagaimana kalau kotak itu dibuka di layar komputer yang lebarnya 1400px, lalu dibuka lagi di HP yang lebarnya hanya 390px?

Masalahnya: ukuran yang bagus di komputer belum tentu bagus di HP. Di sinilah satuan relatif dan teknik responsive CSS mulai berguna.

Jadi sederhananya:

px → ukuran tetap
% / vw / vh / rem → ukuran yang bisa mengikuti keadaan

02 — px: teman lama kita

px adalah satuan yang paling mudah dipahami. Ketika kita menulis:

font-size: 20px;

kita sedang berkata: "Gunakan ukuran font 20 pixel."

Contoh lain

border: 2px solid; border-radius: 10px; padding: 15px;

Untuk border, radius, jarak kecil, dan berbagai detail desain, px masih sangat nyaman digunakan.

INGAT:
px = ukuran yang relatif tetap dan mudah dikontrol.

03 — %: ukuran berdasarkan induknya

Kalau kamu menulis:

width: 80%;

artinya bukan 80 pixel. Artinya: 80% dari lebar elemen induknya.

Misalnya induknya 1000px
80% = sekitar 800px

Karena itu kita sering menemukan:

width: 90%; max-width: 800px;

Di layar kecil, elemen mengikuti lebar layar. Di layar besar, elemen tidak terus membesar karena dibatasi max-width.

INGAT:
% = persentase terhadap elemen induk.

04 — vw: mengikuti lebar layar

vw adalah singkatan dari viewport width. Gampangnya:

1vw = 1% dari lebar layar

Jadi:

width: 80vw;

berarti lebarnya sekitar 80% dari lebar layar.

vw juga menarik untuk ukuran font:

font-size: 5vw;

Font akan ikut membesar ketika layar semakin lebar. Tetapi ada masalah: kalau hanya memakai vw, font juga bisa menjadi terlalu kecil di HP atau terlalu besar di monitor.

Nah, nanti kita akan bertemu dengan clamp() untuk mengatasi masalah ini.

INGAT:
vw = mengikuti lebar layar.

05 — vh: mengikuti tinggi layar

Kalau vw berhubungan dengan width, maka vh berhubungan dengan height.

1vh = 1% dari tinggi layar

Contohnya:

min-height: 100vh;

Artinya bagian tersebut minimal memiliki tinggi sebesar satu layar penuh.

Ini sangat berguna untuk desain seperti halaman pembuka, welcome screen, landing page, atau halaman romantis full-screen.

100vh
satu tinggi layar penuh
INGAT:
vh = mengikuti tinggi layar.

06 — rem: ukuran berdasarkan font dasar

rem sering membuat pemula sedikit bingung, tetapi konsep dasarnya sederhana.

Dalam banyak browser, ukuran dasar font adalah sekitar 16px. Maka secara umum:

CSS Kurang lebih
1rem 16px
1.5rem 24px
2rem 32px
3rem 48px

Jadi:

font-size: 2rem;

kurang lebih berarti 32px jika ukuran dasar browser adalah 16px.

rem banyak digunakan untuk font dan spacing karena ukurannya lebih mudah dibuat konsisten di seluruh website.

INGAT:
rem = ukuran yang mengacu pada font dasar/root.

07 — em: mirip rem, tetapi ada jebakannya

em mirip dengan rem, tetapi acuannya berbeda.

rem → mengacu pada root
em → mengacu pada ukuran font elemen/induk

Contohnya:

.parent { font-size: 20px; } .child { font-size: 2em; }

Maka ukuran anak kira-kira:

2 × 20px = 40px

Karena em dapat mengikuti ukuran induknya, perhitungannya bisa menjadi bertingkat dan agak membingungkan.

Untuk sekarang tidak perlu memaksakan diri menghafal em. Pahami rem dulu. Nanti kalau sudah terbiasa dengan CSS, em akan terasa lebih masuk akal.

08 — ch: ukuran yang dekat dengan dunia teks

Ini salah satu satuan yang menarik untuk blog. ch kira-kira berkaitan dengan lebar karakter.

max-width: 70ch;

Maksud sederhananya: batasi panjang baris teks kira-kira agar berada di sekitar 70 karakter.

Kenapa ini menarik? Karena baris artikel yang terlalu panjang membuat mata cepat lelah.

Lebar teks nyaman dibaca

Baris teks yang tidak terlalu panjang biasanya terasa lebih nyaman karena mata tidak perlu melakukan perjalanan terlalu jauh dari ujung kiri menuju ujung kanan.
INGAT:
ch = berguna untuk mengatur panjang baris teks.

09 — fr: membagi ruang dalam Grid

fr biasanya muncul ketika kita menggunakan CSS Grid.

Misalnya:

grid-template-columns: 1fr 1fr;

Artinya ruang dibagi menjadi dua bagian sama besar.

1fr
1fr

Kalau:

grid-template-columns: 2fr 1fr;

maka bagian pertama mendapat ruang dua kali lebih besar daripada bagian kedua.

2fr
1fr
INGAT:
fr = membagi ruang yang tersedia dalam Grid.

10 — auto: biarkan browser menghitung

Kadang kita tidak perlu menentukan ukuran secara manual. Kita bisa mengatakan:

width: auto;

Artinya kurang lebih: "Browser, tentukan ukuran yang sesuai."

Contoh yang sangat sering ditemukan:

width: 800px; margin: 0 auto;

Di sini auto pada margin membantu menempatkan elemen di tengah ketika ruang kiri dan kanan tersedia.

11 — min(), max(), dan clamp()

Nah, sekarang kita masuk ke bagian yang sangat berguna untuk membuat CSS responsif.

min()

width: min(90%, 800px);

Artinya: ambil nilai yang lebih kecil antara 90% dan 800px.

Jadi pada layar kecil, elemen bisa mengikuti layar. Pada layar besar, lebarnya berhenti di sekitar 800px.

max()

padding: max(20px, 5vw);

Artinya: ambil nilai yang lebih besar antara 20px dan 5vw.

Dan akhirnya... clamp() 🎯

clamp() bisa dianggap sebagai:

MINIMUM → FLEKSIBEL → MAKSIMUM

Contoh:

font-size: clamp(34px, 5vw, 52px);

Artinya:

34px
Ukuran minimum
5vw
Ukuran fleksibel
52px
Ukuran maksimum

Jadi font boleh mengikuti ukuran layar melalui 5vw, tetapi tidak akan mengecil di bawah 34px dan tidak akan membesar melewati 52px.

Dan penting: angka tengah tidak harus 5vw. Kita bisa menggunakan 3vw, 4vw, 6vw, bahkan kombinasi seperti calc(), sesuai kebutuhan desain.

Contoh yang lebih lembut

font-size: clamp(30px, 3vw, 46px);

Dibandingkan 5vw, pertumbuhan ukuran font akan lebih lembut.

INGAT:
clamp(min, fleksibel, max)

Artinya: boleh berubah, tetapi jangan terlalu kecil dan jangan terlalu besar.

12 — Jadi, kapan memakai yang mana?

Satuan Bahasa gampang Cocok untuk
px Ukuran tetap Border, radius, detail, spacing tertentu
% Persentase induk Lebar elemen
vw Persentase lebar layar Ukuran yang mengikuti lebar layar
vh Persentase tinggi layar Full-screen
rem Berdasarkan font dasar Font dan spacing
em Berdasarkan font induk Ukuran relatif
ch Kira-kira lebar karakter Panjang baris teks
fr Bagian dari ruang CSS Grid
clamp() Min + fleksibel + max Responsive

13 — Tidak perlu meninggalkan px

Ini penting. Setelah mengetahui semua satuan tadi, bukan berarti sekarang setiap px harus kita buang. 😄

Justru kita bisa menggabungkannya.

.judul { font-size: clamp(30px, 4vw, 50px); } .kotak { width: 90%; max-width: 800px; padding: 20px; border-radius: 12px; } .halaman { min-height: 100vh; }

Perhatikan:

px + % + vw + vh + clamp()

Tidak ada aturan bahwa sebuah website harus menggunakan satu jenis satuan saja. Justru CSS yang bagus sering menggunakan beberapa satuan sekaligus sesuai kebutuhan masing-masing elemen.

14 — Peta belajar cepat 🧠

Mulai dari:
px
%
vw / vh
rem
clamp()

Lima bagian itu sudah cukup untuk membuatmu jauh lebih nyaman menghadapi CSS responsive.

Setelah mulai terbiasa, baru lanjutkan ke:

fr · ch · min() · max()

Sedangkan em bisa dipelajari belakangan. Tidak perlu buru-buru. CSS itu bukan lomba hafalan. 😄

🎯 Ringkasan Satu Menit

```

px → "Saya mau ukuran yang jelas."
% → "Saya mau mengikuti induknya."
vw → "Saya mau mengikuti lebar layar."
vh → "Saya mau mengikuti tinggi layar."
rem → "Saya mau mengikuti ukuran font dasar."
ch → "Saya mau mengatur panjang baris teks."
fr → "Saya mau membagi ruang Grid."
clamp() → "Saya mau fleksibel, tapi tetap punya batas."

Kalau lupa, kembali saja ke artikel ini. Kita tidak sedang ujian. 😉

```

Blog ini tidak memasang iklan. Jika Tuan dan Nona berkenan, bisa dukung blog ini dengan menraktir kopi. Terima kasih. ^_^


Baca Sebelumnya
Komentar Netizen
Tulis Komentarmu
comment url