Heim > Web-Frontend > CSS-Tutorial > Warum unterscheidet sich das Z-Index-Verhalten in Internet Explorer 7?

Warum unterscheidet sich das Z-Index-Verhalten in Internet Explorer 7?

Mary-Kate Olsen
Freigeben: 2024-12-17 18:33:14
Original
561 Leute haben es durchsucht

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

IE7 Z-Index-Layering-Probleme: Ein umfassendes Verständnis

Internet Explorer 7 (IE7) weist ein eigenartiges Verhalten in Bezug auf die Z-Index-Eigenschaft auf , das für die Bestimmung der Stapelreihenfolge von Elementen auf einer Webseite verantwortlich ist. Dieses Verhalten kann zu unerwarteten Ebenenproblemen führen, insbesondere wenn mit mehreren überlappenden Elementen gearbeitet wird.

Was ist das Problem mit dem Z-Index in IE7?

In IE7 ist das z Die Eigenschaft -index ist relativ zu Elementen innerhalb desselben Stapelkontexts. Im Gegensatz zu den meisten Browsern erstellt IE7 jedoch einen neuen Stapelkontext für jedes positionierte Element ohne explizit festgelegten Z-Index-Wert. Dies bedeutet, dass ein Element mit einem niedrigeren Z-Index ein Element mit einem höheren Z-Index überlappen kann, wenn sie zu unterschiedlichen Stapelkontexten gehören.

Ein praktisches Beispiel

Betrachten Sie den folgenden Beispiel-HTML- und CSS-Code:

<form>
  <label>Input #1:</label>
  <span>
Nach dem Login kopieren
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;
}
Nach dem Login kopieren

In diesem Beispiel wollten wir das Menü (das

    -Element) des ersten Umschlags so, dass er den zweiten Umschlag überlappt. Allerdings überlappt in IE7 der zweite Umschlag das Menü, da der positionierte Ohne einen expliziten Z-Index wird ein neuer Stapelkontext erstellt.

    Mögliche Lösungen

    Um dieses Problem anzugehen, gibt es zwei Hauptansätze:

    1. Fügen Sie dem übergeordneten Element einen expliziten Z-Index hinzu Element:

      • Dies zwingt alle untergeordneten Elemente (einschließlich des Menüs) des übergeordneten Elements, alle Geschwister des übergeordneten Elements zu überlappen. In unserem Beispiel würde das folgende CSS das Problem beheben:
      #envelope-1 {
          position: relative;
          z-index: 1;
      }
      Nach dem Login kopieren
    2. Entfernen Sie die Position: relative aus dem übergeordneten Element:

      • Entfernen Sie nach Möglichkeit die Eigenschaft „position: relative“ aus dem übergeordneten Element (in unserem Beispiel „“), um die Erstellung eines neuen Stapelkontexts zu vermeiden. Auf diese Weise überlappt das Menü auf natürliche Weise den zweiten Umschlag. Der geänderte HTML-Code würde so aussehen:
      <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>
      Nach dem Login kopieren

    Das obige ist der detaillierte Inhalt vonWarum unterscheidet sich das Z-Index-Verhalten in Internet Explorer 7?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage