CSS Dasar
Position & Float

Position & Float ๐Ÿ“Œ

Sebelum ada Flexbox, developer pake teknik Float dan Position buat ngatur tata letak. Walaupun Flexbox udah ada, Position tetep WAJIB dikuasai buat kasus khusus (misal: Sticky Header atau Modal).

1. Float (Masa Lalu) โ›ต

Dulu, ini dipake buat layout (kiri-kanan). Tapi aslinya, Float itu cuma buat Bungkus Teks di Samping Gambar (kayak di koran).

img {
  float: left; /* Gambar minggir ke kiri */
  margin-right: 10px;
}

_Efeknya: Teks di bawahnya bakal naik dan ngelilingin gambar itu. _

โ›”
Fatwa Float: Jangan pake float buat layout utama (misal: Sidebar kiri, Konten kanan). Itu kuno dan bikin sakit kepala (karena elemen induknya jadi "kempes"). Gunakan Float CUMA kalau lo mau efek teks ngelilingin gambar. Titik.

2. Position (Jurus Menumpuk Elemen) ๐Ÿ—๏ธ

Secara default, elemen HTML itu antri rapi ke bawah (disebut Static). Tapi kadang kita mau elemen itu "melayang", "nempel", atau "tumpuk-tumpukan".

Properti position punya 4 jurus utama:

A. Relative ๐Ÿ‘ป

Dia pindah posisi, TAPI tempat aslinya tetep dipesan (kosong). Elemen lain gak bakal nyerobot tempat dia.

 
.kotak {
  position: relative;
  top: 20px;  /* Turun 20px dari posisi normalnya */
  left: 10px; /* Geser 10px dari kiri */
}

B. Absolute ๐Ÿฆ…

Dia keluar dari antrian normal. Dia melayang di atas elemen lain. Tempat aslinya dianggap hilang, jadi elemen lain bakal naik nyerobot.

Hukum Wajib Absolute: Dia bakal memposisikan diri berdasarkan Induk Terdekat yang punya posisi (relative). Kalau gak ada induk yang relative, dia bakal nempel ke Layar Browser (Body).

 
/* SANGKAR (Induk) */
.bapak {
  position: relative; /* Wajib ada biar anaknya gak kabur */
  width: 500px;
  height: 500px;
}
 
/* BURUNG (Anak) */
.anak {
  position: absolute;
  top: 0;
  right: 0; /* Nempel di pojok kanan atas Bapaknya */
}

C. Fixed ๐Ÿ“Œ

Dia nempel ke Layar Kaca (Viewport). Mau discroll kemanapun, dia tetep di situ. Cocok buat: Navbar, Tombol Chat WA, Iklan Mengganggu.

 
.navbar {
  position: fixed;
  top: 0;
  width: 100%;
}

D. Sticky ๐Ÿฏ

Awalnya dia relative (ikut scroll biasa). Tapi pas dia nyentuh batas tertentu (top: 0), dia berubah jadi fixed (nempel). Cocok buat: Judul Tabel, Filter Menu.

 
.judul {
  position: sticky;
  top: 0; /* Bakal nempel pas nyentuh atap layar */
}

3. Z-Index (Tumpukan Kartu) ๐Ÿƒ

Kalau ada elemen yang posisinya absolute atau fixed, pasti ada yang ketutupan. Siapa yang di atas? Siapa yang di bawah?

Diatur pake z-index. Makin gede angkanya, makin di atas posisinya.

 
.modal {
  position: fixed;
  z-index: 999; /* Paling atas, ngalahin yang lain */
}
 
.konten {
  position: relative;
  z-index: 1;
}
โš ๏ธ
Syarat Z-Index: z-index CUMA BERFUNGSI kalau elemennya punya position (relative/absolute/fixed). Kalau posisinya static (default), dikasih z-index 1000 pun gak bakal ngaruh.