Rumah >hujung hadapan web >tutorial css >Mengapa Gelagat Z-Index Berbeza dalam Internet Explorer 7?

Mengapa Gelagat Z-Index Berbeza dalam Internet Explorer 7?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-17 18:33:14563semak imbas

Why Does Z-Index Behavior Differ in Internet Explorer 7?

Isu Lapisan Indeks Z-IE7: Pemahaman Komprehensif

Internet Explorer 7 (IE7) mempunyai gelagat pelik berkenaan sifat indeks-z , yang bertanggungjawab untuk menentukan susunan susunan elemen pada halaman web. Tingkah laku ini boleh membawa kepada isu pelapisan yang tidak dijangka, terutamanya apabila bekerja dengan berbilang elemen bertindih.

Apakah Masalah dengan Indeks-Z dalam IE7?

Dalam IE7, z -harta indeks adalah relatif kepada elemen dalam konteks susunan yang sama. Walau bagaimanapun, tidak seperti kebanyakan penyemak imbas, IE7 mencipta konteks tindanan baharu untuk mana-mana elemen diposisikan tanpa nilai indeks z yang ditetapkan secara eksplisit. Ini bermakna elemen dengan indeks z yang lebih rendah boleh bertindih dengan elemen dengan indeks z yang lebih tinggi jika ia tergolong dalam konteks tindanan yang berbeza.

Contoh Praktikal

Pertimbangkan contoh kod HTML dan CSS berikut:

<form>
  <label>Input #1:</label>
  <span>
input {
    border: 1px solid #000;
}

div {
    border: 1px solid #00f;
}

ul {
    border: 1px solid #f00;
    background-color: #f00;
    list-style-type: none;
    margin: 0;
    padding-left: 0;
    z-index: 1000;
}

li {
    color: #fff;
    list-style-type: none;
    padding-left: 0;
    margin-left: 0;
}

span.envelope {
    position: relative;
}

span.envelope ul {
    position: absolute;
    top: 20px;
    left: 0;
    width: 150px;
}

Dalam contoh ini, kami bertujuan menu (

    elemen) sampul pertama untuk bertindih dengan sampul kedua. Walau bagaimanapun, dalam IE7, sampul kedua bertindih dengan menu kerana kedudukan tanpa z-indeks yang jelas mewujudkan konteks tindanan baharu.

    Penyelesaian Kemungkinan

    Untuk menangani isu ini, terdapat dua pendekatan utama:

    1. Tambahkan Indeks Z Eksplisit pada Induk Elemen:

      • Ini memaksa semua kanak-kanak (termasuk menu) elemen induk untuk bertindih dengan semua adik-beradik elemen induk. Dalam contoh kami, CSS berikut akan membetulkan isu:
      #envelope-1 {
          position: relative;
          z-index: 1;
      }
    2. Alih keluar kedudukan: relatif daripada Elemen Induk:

      • Jika boleh, alih keluar kedudukan: sifat relatif daripada elemen induk ( dalam contoh kami) untuk mengelak daripada mencipta yang baharu konteks susun. Dengan cara ini, menu akan bertindih dengan sampul surat kedua secara semula jadi. Kod HTML yang diubah suai akan kelihatan seperti ini:
      <html>
      <head>
          <title>Z-Index IE7 Test</title>
          <style type="text/css">
              ul {
                  background-color: #f00;
                  z-index: 1000;
                  position: absolute;
                  width: 150px;
              }
          </style>
      </head>
      <body>
          <div>
              <label>Input #1:</label> <input><br>
              <ul>
                  <li>item</li>
                  <li>item</li>
                  <li>item</li>
                  <li>item</li>
              </ul>
          </div>
      
          <div>
              <label>Input #2:</label> <input>
          </div>
      </body>
      </html>

    Atas ialah kandungan terperinci Mengapa Gelagat Z-Index Berbeza dalam Internet Explorer 7?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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