๐ŸŽจ Phase 2 โ€” CSS
P11 ยท Pertemuan 11 dari 20

Layout: Display & Positioning

Menguasai properti display CSS dan sistem positioning untuk membuat layout sticky header, floating button, dan elemen yang di-overlay.

Phase
Phase 2 โ€” CSS
Topik
CSS Fundamentals
Durasi
90 Menit
Deadline Tugas
Sebelum Pertemuan Berikutnya โ€” Pukul 23.59 WIB
๐ŸŽฏTujuan Pembelajaran
  • 01Memahami display: block, inline, inline-block, none
  • 02Menguasai position: static, relative, absolute, fixed, sticky
  • 03Menggunakan z-index dan stacking context
  • 04Centering elemen dengan margin auto dan transform
  • 05Memahami float dan clear (legacy)
  • 06Membuat sticky header dan floating action button
๐Ÿ“–Sub-topik & Materi
  • 01display: block, inline, inline-block, none, visibility: hidden
  • 02position: static (default), relative, absolute, fixed, sticky
  • 03z-index dan stacking context
  • 04Centering: margin auto (horizontal block), transform: translate(-50%,-50%) (center mutlak)
  • 05float dan clear โ€” legacy, untuk pemahaman
  • 06Praktik: sticky header dan floating button
๐Ÿ’กPenjelasan Konsep
Konsep 1
Lima Nilai Position CSS
static (default): mengikuti alur normal dokumen, tidak bisa digeser. relative: posisi normal tapi bisa digeser dengan top/left/right/bottom (ruang aslinya tetap ada). absolute: dilepas dari alur dokumen, posisinya relatif ke ancestor dengan position bukan static. fixed: menempel ke viewport, tidak bergerak saat scroll. sticky: campuran relative dan fixed โ€” menempel saat mencapai posisi tertentu saat scroll.
css
/* Relative: tetap di alur, bisa digeser */
.label {
  position: relative;
  top: -4px; /* geser ke atas 4px */
}

/* Absolute: relatif ke parent yang punya position */
.badge {
  position: absolute;
  top: 12px;
  right: 12px;
}
/* Parent harus: */
.kartu {
  position: relative; /* โ† wajib agar badge absolute relatif ke sini */
}

/* Fixed: menempel ke layar */
.fab {
  position: fixed;
  bottom: 24px;
  right: 24px;
}

/* Sticky: menempel saat scroll */
header {
  position: sticky;
  top: 0; /* menempel di atas saat mencapai batas atas */
  z-index: 100;
}
Konsep 2
Z-index โ€” Urutan Tumpukan
z-index mengontrol urutan tumpukan elemen yang saling overlapping. Nilai lebih besar = di atas. Default z-index adalah auto (setara 0). PENTING: z-index HANYA bekerja pada elemen yang punya position selain static. Jika elemen tidak bisa naik meski z-index besar, cek dulu apakah ia punya position.
css
/* z-index hanya bekerja dengan position */
.overlay {
  position: fixed;
  top: 0; left: 0;
  width: 100%; height: 100%;
  background: rgba(0,0,0,0.5);
  z-index: 100;
}

.modal {
  position: fixed;
  z-index: 200; /* di atas overlay */
}

.header {
  position: sticky;
  z-index: 50; /* di bawah overlay & modal */
}
๐Ÿ’ปContoh Kode Lengkap
css
/* Sticky Header */
header {
  position: sticky;
  top: 0;
  z-index: 100;
  background: white;
  box-shadow: 0 2px 8px rgba(0,0,0,0.1);
}

/* Absolute: badge di atas kartu */
.kartu {
  position: relative; /* Jadi konteks untuk anak absolute */
}
.badge {
  position: absolute;
  top: -8px;
  right: -8px;
  background: red;
  color: white;
  border-radius: 50%;
  width: 24px;
  height: 24px;
}

/* Fixed: tombol kembali ke atas */
.btn-top {
  position: fixed;
  bottom: 24px;
  right: 24px;
  z-index: 999;
  background: #1A4A8A;
  border-radius: 50%;
}
โšกLatihan Kelas ยท Buat navigasi sticky di atas dan tombol "kembali ke atas" yang floating di pojok kanan bawah
1
Tambahkan position: sticky; top: 0; z-index: 100; ke <header>
2
Scroll halaman untuk memastikan header mengikuti scroll
3
Buat div.btn-top dengan position: fixed; bottom: 24px; right: 24px;
4
Tambahkan badge (angka notifikasi) absolute di atas kartu
5
Uji z-index: pastikan header tampil di atas konten saat scroll
๐Ÿ“ Tugas 3.4 โ€” Display & Positioning
โฐ Deadline: Sebelum Pertemuan Berikutnya โ€” Pukul 23.59 WIB

Buat halaman dengan: (1) sticky navbar yang tidak hilang saat scroll, (2) hero section dengan teks yang di-center secara vertikal dan horizontal, (3) kartu dengan badge absolute di sudutnya, dan (4) floating action button fixed di pojok kanan bawah.

Kriteria PenilaianPoin
Sticky navbar berfungsi saat halaman di-scroll30
Badge absolute terpasang rapi di pojok kartu25
Floating button fixed di pojok kanan bawah25
Tidak ada elemen yang saling tumpuk secara tidak sengaja (z-index benar)20
Total100
โš ๏ธKesalahan yang Sering Dibuat
Lupa menambahkan position: relative ke parent elemen absolute โ€” badge/label melayang ke tempat yang salah
Mencoba menggunakan top/left pada elemen position: static โ€” tidak akan bergerak
z-index tidak bekerja โ€” elemen tidak punya position (masih static)
Sticky tidak menempel โ€” parent container tidak cukup tinggi atau ada overflow: hidden di parent
Menggunakan fixed untuk elemen yang seharusnya relative โ€” elemen tidak mengikuti layout
๐Ÿ’ก Tips Instruktur
Absolute anak membutuhkan parent dengan position: relative
Fixed: posisi relatif ke viewport, tidak terpengaruh scroll
Sticky perlu nilai top/bottom untuk menentukan di mana "menempel"
z-index hanya bekerja pada elemen yang memiliki position (bukan static)
๐Ÿ“‹ Checklist Belajar
Pahami konsep sebelum latihan
Coba kode sendiri tanpa copy-paste
Kerjakan tugas sebelum deadline
Tanya instruktur jika ada yang belum jelas
Parelabs Academy - Kursus Bahasa Inggris Terbaik Offline & Online