HTML-, CSS- und JS-Kompatibilitätsbaum (IE, Firefox, Chrome)

HTML-, CSS- und JS-Kompatibilitätsbaum (IE, Firefox, Chrome)
Was ist ein Baum im Webdesign? Einfach ausgedrückt: Wenn Sie auf einen Link klicken, wird das Unterverzeichnis erweitert, und wenn Sie erneut klicken, wird es geschlossen. Dies ist der einfachste Baum. Die Implementierung ist ebenfalls sehr einfach. In CSS gibt es eine Eigenschaftsanzeige, mit der gesteuert werden kann, ob der Inhalt angezeigt wird oder nicht. Anschließend können Sie JS verwenden, um die Eigenschaften von CSS zu steuern und dies zu erreichen. Siehe den folgenden Code:
<div>Verzeichnis der obersten Ebene</div>
<div id="Menüliste">
<div>Menü 1</div>
<div>Menü 2</div>
<div>Menü 3</div>
</div>
Dies ist der Prototyp des Baums. Natürlich fügt der Anfangszustand das CSS-Anzeigeattribut hinzu. Die am häufigsten verwendeten Anzeigeattribute sind „none“ und „block“.
None bedeutet keine Anzeige, während Block wie ein Blocktypelement angezeigt wird. Schauen wir uns den Code an
<div>Verzeichnis der obersten Ebene</div>
<div id="Menüliste" style="Anzeige:keine">
<div>Menü 1</div>
<div>Menü 2</div>
<div>Menü 3</div>
</div>
Auf diese Weise wird beim Ausführen der Seite nur das Verzeichnis der obersten Ebene angezeigt. Wenn Sie es steuern möchten, müssen Sie js-Code hinzufügen
1. Holen Sie sich zuerst die Menüliste
var Menüliste = document.getElementById("Menüliste");
2. Oder das Objekt kann seine CSS-Eigenschaften steuern
menulist.style.display="Block";
Urteil hinzufügen
wenn (menulist.style.display="keine")
menulist.style.display="Block";
anders
Menüliste.style.display="keine";
Auf diese Weise wird der primitivste Baum erzeugt und der endgültige Code
<Skript>
Funktion showmenu()
{
var Menüliste = document.getElementById("Menüliste");
wenn (menulist.style.display=="keine")
menulist.style.display="Block";
anders
Menüliste.style.display="keine";
}
</Skript>
<div auf
click="showmenu();">Top-Verzeichnis</div>
<div id="Menüliste" style="Anzeige:keine">
<div>Menü 1</div>
<div>Menü 2</div>
<div>Menü 3</div>
</div>
Lange Zeit habe ich diese Methode verwendet, um Eigenschaftsverzeichnisse zu erstellen. Egal, wie komplex das Verzeichnis war, diese Methode hat jedes Mal funktioniert. Der folgende Screenshot zeigt den laufenden Effekt eines komplexeren Baumverzeichnisses, das ich unter IE erstellt habe:


Etwas Schreckliches ist passiert. In Chrome sah alles durcheinander aus. Nach einiger Informationssuche habe ich endlich den Grund gefunden. Neben Block und None hat Display viele andere Attribute. Block wird in Blöcken angezeigt und ich habe Tabellen für das Layout verwendet. Gott weiß, ob Tabellen und Blöcke einen tiefen Hass haben. Microsoft hält es für klug, seinen Hass zu ignorieren, während Chrome sich immer noch ehrlich an die Standards hält, und das gilt auch für Firefox. Es gibt also immer noch ein Problem in ihrer Erklärung. So lösen Sie dieses Problem:
Display verfügt außerdem über eine Eigenschaft namens table-cell, die den Inhalt in Form einer Tabelle darstellt. Genau das möchte ich tun, wenn ich eine Tabelle für das Layout verwende. Im Folgenden sind die kompatiblen Darstellungen von drei Browsern aufgeführt:

IE6

Chrom2

Firefox 3.5

<<:  Übertragung von Routing-Parametern für die Kommunikation von React-Komponenten (react-router-dom)

>>:  Beispiel zum Ändern von Stilen über CSS-Variablen

Artikel empfehlen

Vue.js verwendet Element-ui, um das Navigationsmenü zu implementieren

In diesem Artikel wird der spezifische Code zur I...

Erfahrungsaustausch zur Reparatur von MySQL InnoDB-Ausnahmen

Eine Reihe von MySQL-Bibliotheken zum Testen. Die...

Automatisiertes Frontend-Deployment basierend auf Docker, Nginx und Jenkins

Inhaltsverzeichnis Vorbereitende Vorbereitung Ber...

So setzen Sie das MySQL-Root-Passwort zurück

Inhaltsverzeichnis 1. Ich habe das Root-Passwort ...

10 tödliche semantische Fehler in der Webtypografie

<br />Dies stammt aus dem Inhalt von „Web Fr...

Zusammenfassung der HTML-Formatierungsstandards für webbasierte E-Mail-Inhalte

1. Seitenanforderungen 1) Verwenden Sie standardm...

JS implementiert das Schlangenspiel

Inhaltsverzeichnis 1. Initialisierungsstruktur 2....

Theorie: Die zwei Jahre User Experience

<br />Es ist nicht länger als zwei Jahre her...

Eine kurze Diskussion über benutzerdefinierte VUE-Uni-App-Komponenten

1. Übergeordnete Komponenten können Daten über Re...

Zusammenfassung der MySQL-Nutzungsspezifikationen

1. Es muss die InnoDB-Speicher-Engine verwendet w...

Implementierung der TCPWrappers-Zugriffskontrolle in Centos

1. Übersicht über TCP-Wrapper TCP Wrapper „verpac...