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
583 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!

sumber:php.cn
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