Rumah > hujung hadapan web > tutorial css > Mengapakah `transform` Membatalkan `z-index` dan Bagaimana Saya Boleh Membetulkannya?

Mengapakah `transform` Membatalkan `z-index` dan Bagaimana Saya Boleh Membetulkannya?

Linda Hamilton
Lepaskan: 2024-12-26 06:43:09
asal
708 orang telah melayarinya

Why Does `transform` Cancel `z-index` and How Can I Fix It?

z-index Dibatalkan oleh Transform: Memahami Konteks Susunan

Dalam kod yang disediakan, z-index elemen ".test" dibatalkan apabila sifat transformasi digunakan. Untuk memahami tingkah laku ini, kita mesti menyelidiki konsep konteks tindanan.

Konteks Susun Kendiri:

transformasi mencipta konteks tindanan untuk ".test" unsur. Konteks tindanan menentukan susunan unsur berdasarkan nilai indeks znya. Elemen dalam konteks tindanan yang sama dilapisi mengikut indeks-znya, dengan nilai yang lebih tinggi muncul di hadapan.

Konteks Susunan Diwarisi:

The ".test:after " pseudo-element mempunyai indeks z negatif (-1). Walau bagaimanapun, nilai ini hanya mempengaruhi kedudukannya dalam konteks tindanan elemen ".test". Ia tidak meletakkan ".test:after" di belakang ".test" kerana indeks-z hanya bermakna dalam konteks tindanan individu.

Menyelesaikan Masalah:

Kepada mempunyai indeks-z berfungsi seperti yang diharapkan, pastikan ".test" dan ".test:after" berkongsi konteks tindanan yang sama. Semasa memutar ".test" dengan transform mencipta konteks tindanannya sendiri, menggunakan elemen pembungkus dan memutarnya membenarkan ".test:after" mewarisi konteks yang sama.

Kod Kemas Kini dengan Pembungkus:

Dengan melampirkan ".test" dalam ".wrapper" dan menggunakan transformasi padanya, kami mengekalkan indeks-z hierarki untuk ".test:after" sambil masih memutar kedua-dua ".wrapper" dan ".test."

<div class="wrapper">
    <div class="test">z-index is canceled.</div>
</div>
Salin selepas log masuk
.wrapper {
    -webkit-transform: rotate(10deg);
}
.test {
    width: 150px;
    height: 40px;
    margin: 30px;
    line-height: 40px;
    position: relative;
    background: white;
}
.test:after {
    width: 100px;
    height: 35px;
    content: "";
    position: absolute;
    top: 0;
    right: 2px;
    -webkit-box-shadow: 0 5px 5px #999; /* Safari and Chrome */
    -webkit-transform: rotate(3deg); /* Safari and Chrome */
    transform: rotate(3deg);
    z-index: -1;
}
Salin selepas log masuk

Atas ialah kandungan terperinci Mengapakah `transform` Membatalkan `z-index` dan Bagaimana Saya Boleh Membetulkannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan