Dalam banyak kasus suatu elemen harus diposisikan z-index
agar berfungsi.
Memang, menerapkan position: relative
elemen-elemen dalam pertanyaan kemungkinan akan menyelesaikan masalah (tetapi tidak ada kode yang cukup untuk mengetahui dengan pasti).
Sebenarnya, position: fixed
, position: absolute
dan position: sticky
juga akan memungkinkan z-index
, tetapi nilai-nilai juga mengubah tata letak. Dengan position: relative
tata letak tidak terganggu.
Intinya, selama elemen itu tidak position: static
(pengaturan default) itu dianggap diposisikan dan z-index
akan 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-index
bahkan saat position
ada 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-index
nilai-nilai selain auto
membuat konteks susun bahkan jika position
itu static
.
5.4. Z-axis Ordering: z-index
properti
Urutan lukisan kisi item persis sama dengan blok inline, kecuali bahwa urutan dokumen yang dimodifikasi pesanan digunakan sebagai pengganti urutan dokumen mentah, dan z-index
nilai selain auto
membuat konteks penumpukan bahkan jika
position
ada static
.
Berikut ini demonstrasi z-index
bekerja pada item fleksibel yang tidak diposisikan: https://jsfiddle.net/m0wddwxs/
Stacking Context
.