Dalam banyak kasus suatu elemen harus diposisikan z-indexagar berfungsi.
Memang, menerapkan position: relativeelemen-elemen dalam pertanyaan kemungkinan akan menyelesaikan masalah (tetapi tidak ada kode yang cukup untuk mengetahui dengan pasti).
Sebenarnya, position: fixed, position: absolutedan position: stickyjuga akan memungkinkan z-index, tetapi nilai-nilai juga mengubah tata letak. Dengan position: relativetata letak tidak terganggu.
Intinya, selama elemen itu tidak position: static(pengaturan default) itu dianggap diposisikan dan z-indexakan berfungsi.
Banyak jawaban untuk "Mengapa indeks-z tidak berfungsi?" pertanyaan menegaskan bahwa z-index hanya bekerja pada elemen yang diposisikan. Pada CSS3, ini tidak lagi benar.
Elemen yang merupakan item fleksibel atau item kisi dapat digunakan z-indexbahkan saat positionada static.
Dari spesifikasi:
4.3. Item Z-Pemesanan Flex
Item fleksibel cat persis sama dengan blok inline, kecuali bahwa urutan dokumen yang dimodifikasi pesanan digunakan di tempat pesanan dokumen mentah, dan z-indexnilai-nilai selain automembuat konteks susun bahkan jika positionitu static.
5.4. Z-axis Ordering: z-indexproperti
Urutan lukisan kisi item persis sama dengan blok inline, kecuali bahwa urutan dokumen yang dimodifikasi pesanan digunakan sebagai pengganti urutan dokumen mentah, dan z-indexnilai selain automembuat konteks penumpukan bahkan jika
positionada static.
Berikut ini demonstrasi z-indexbekerja pada item fleksibel yang tidak diposisikan: https://jsfiddle.net/m0wddwxs/
Stacking Context.