Z-Index dan Positioning Untuk Mengatur Layering Elemen

Saat membuat sebuah website, terkadang kita perlu menumpuk elemen agar tampilan lebih dinamis dan menarik. Nah, di sinilah peran z-index dan positioning jadi penting. Pada artikel ini, kita akan membahas cara mengatur lapisan elemen di halaman web menggunakan properti CSS tersebut.
Positioning dalam CSS
Sebelum memahami z-index
, kita perlu mengetahui konsep positioning terlebih dahulu. Properti position
dalam CSS menentukan bagaimana sebuah elemen diposisikan di dalam dokumen. Ada beberapa nilai yang bisa digunakan:
a. Static (Default)
.element { position: static; }
- Elemen mengikuti alur normal dokumen.
- Tidak terpengaruh oleh
top
,bottom
,left
,right
, atauz-index
.
b. Relative
.element { position: relative; top: 10px; left: 20px; }
- Elemen diposisikan relatif terhadap posisi normalnya.
- Dapat digeser menggunakan
top
,bottom
,left
, danright
. - Tidak memengaruhi elemen lain di sekitarnya.
c. Absolute
.element { position: absolute; top: 50px; left: 100px; }
- Elemen diposisikan relatif terhadap elemen parent terdekat yang memiliki
position: relative
,absolute
,fixed
, atausticky
. - Jika tidak ada, elemen akan relatif terhadap
<body>
. - Dikeluarkan dari alur normal dokumen.
d. Fixed
.element { position: fixed; bottom: 0; right: 0; }
- Elemen tetap berada di posisi yang sama meskipun halaman di-scroll.
- Relatif terhadap viewport (layar browser).
e. Sticky
.element { position: sticky; top: 0; }
- Gabungan dari
relative
danfixed
. - Akan “menempel” (
fixed
) ketika mencapai posisi tertentu saat scrolling.
Z-Index
Setelah memahami position
, kita bisa menggunakan z-index
untuk mengontrol elemen mana yang muncul di atas atau di bawah elemen lain.
Apa itu Z-Index?
z-index
menentukan urutan tumpukan (stacking order) elemen yang memilikiposition
selainstatic
.- Nilai
z-index
yang lebih besar akan muncul di atas elemen dengan nilai lebih kecil.
Contoh Penggunaan
<div class="box box1">Box 1 (z-index: 2)</div> <div class="box box2">Box 2 (z-index: 1)</div>
.box { position: absolute; width: 200px; height: 200px; } .box1 { background: red; z-index: 2; top: 50px; left: 50px; } .box2 { background: blue; z-index: 1; top: 100px; left: 100px; }
Hasil:
box1
akan muncul di atasbox2
karena memilikiz-index
yang lebih tinggi.
Tips Menggunakan Z-Index dan Positioning
- Parent dengan Z-Index
Jika parent memilikiz-index
, anak-anaknya akan mengikuti konteks stacking parent tersebut. - Nilai Negatif
z-index
bisa bernilai negatif, sehingga elemen akan berada di belakang elemen lain. - Hindari Z-Index yang Terlalu Tinggi
Terlalu banyakz-index
dengan nilai besar (misal 9999) bisa menyulitkan pengelolaan kode.
Kesimpulan
- Positioning (
relative
,absolute
,fixed
,sticky
) membantu mengatur letak elemen. - Z-index mengontrol urutan tumpukan elemen yang memiliki
position
. - Kombinasi keduanya memungkinkan pembuatan layout yang dinamis dan kompleks.