Häufige Browserkompatibilitätsprobleme (Zusammenfassung)

Häufige Browserkompatibilitätsprobleme (Zusammenfassung)

Browserkompatibilität ist nichts anderes als Stilkompatibilität (CSS), Interaktionskompatibilität (JavaScript) und Browser-Hacks.

Stilkompatibilität (CSS)

(1) Aus historischen Gründen haben verschiedene Browser unterschiedliche Stile. Sie können Normalize.css verwenden, um die Unterschiede auszugleichen, oder Sie können Ihre eigene reset.css anpassen, indem Sie beispielsweise einen Platzhalterselektor verwenden, um den Stil global zurückzusetzen.

* { Rand: 0; Polsterung: 0; }

(2) Bevor CSS3 zu einem echten Standard wurde, begannen Browserhersteller, die Verwendung dieser Eigenschaften zu unterstützen. Als die Syntax des CSS3-Stils noch im Wandel war, stellten die Browserhersteller Browserpräfixe bereit, und auch heute noch müssen einige Eigenschaften mit Browserpräfixen hinzugefügt werden. Während des Entwicklungsprozesses nutzen wir normalerweise IDE-Entwicklungs-Plugins, CSS-Präprozessoren und automatisierte Front-End-Build-Projekte als Unterstützung.

Die Entsprechung zwischen Browserkerneln und Präfixen ist wie folgt

Hauptsächlich vertretene Browser Kernel Präfix
Internet Explorer Dreizack -MS
Feuerfuchs Gecko -moz
Oper Presto -O
Chrome und Safari Webkit -Webkit

Interoperabilität (Javascript)

(1) Probleme mit der Ereigniskompatibilität: Normalerweise müssen wir eine Adaptermethode kapseln, um die Bindung, Entfernung, Blasenverhinderung und Standardverarbeitung von Ereignishandles zu filtern.

 var Helfer = {}

 // Bindungsereignis helper.on = function(target, type, handler) {
 	wenn(target.addEventListener) {
 		target.addEventListener(Typ, Handler, false);
 	} anders {
 		target.attachEvent("on" + Typ,
 			Funktion(Ereignis) {
 				returniere Handler.Aufruf (Ziel, Ereignis);
 		    }, FALSCH);
 	}
 };

 //Abhören des Ereignisses abbrechen helper.remove = function(target, type, handler) {
 	wenn(ziel.removeEventListener) {
 		target.removeEventListener(Typ, Handler);
 	} anders {
 		target.detachEvent("on" + Typ,
 	    Funktion(Ereignis) {
 			returniere Handler.Aufruf (Ziel, Ereignis);
 		}, WAHR);
     }
 };

(2) Bei Verwendung des Konstruktors new Date() kann in verschiedenen Browsern die Variable „2019-12-09“ durch die Verwendung von new Date(str) nicht korrekt generiert werden. Die korrekte Verwendung ist „09.12.2019“.

(3) ScrollTop wird über document.documentElement.scrollTop kompatibel mit Nicht-Chrome-Browsern

var scrollTop = document.documentElement.scrollTop||document.body.scrollTop;

Browser-Hacks

(1) Bestimmen Sie schnell die IE-Browserversion

<!--[wenn IE 8]> ie8 <![endif]-->
 
 <!--[if IE 9]> Der coole IE9-Browser<![endif]-->

(2) Stellen Sie fest, ob es sich um den Safari-Browser handelt

/* Safari */
 var isSafari = /a/.__proto__=='//';

(3) Stellen Sie fest, ob es sich um den Chrome-Browser handelt

/* Chrom */
 var isChrome = Boolean(window.chrome);

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

<<:  Detaillierte Erläuterung des Garbage Collection-Mechanismus von JavaScript

>>:  Allgemeines Handbuch zur Front-End-Entwicklung (einschließlich Tools, Websites, Erfahrung usw.)

Artikel empfehlen

Detaillierte Verwendung des Linux-Textsuchbefehls find

Der Befehl „Find“ wird hauptsächlich zum Suchen v...

Die neuesten 36 hochwertigen kostenlosen englischen Schriftarten freigegeben

01. Unendlichkeit Schriftart herunterladen 02. Ban...

So implementieren Sie Leerzeichen in Taobao mit CSS3

Machen Sie einen leeren Bereich für Taobao: Wenn ...

So testen Sie die Netzwerkgeschwindigkeit mit JavaScript

Inhaltsverzeichnis Vorwort Zusammenfassung des Pr...

So fügen Sie Emoji-Ausdrücke in MySQL ein

Vorwort Als ich heute ein Feedback-Formular für e...

Beispiel für Javascript-Bubblesort

Inhaltsverzeichnis 1. Was ist Bubble Sort 2. Gebe...

So stellen Sie das umfassende Benutzererlebnis sicher

Verwandte Artikel: Website-Design für Benutzererfa...

Lösung für das Problem, dass MySQL Daten sehr langsam löscht und einfügt

Wenn ein Unternehmensentwickler eine Insert-Anwei...

Eine großartige Sammlung von Lernressourcen zu Webstandards

Diese Spezifikationen sollen die Veröffentlichung ...

Ein kurzer Vortrag über den Diff-Algorithmus in Vue

Inhaltsverzeichnis Überblick Virtueller Dom Prinz...

MySQL 8.0.21-Installationstutorial unter Windows-System (Abbildung und Text)

Installationsvorschlag : Versuchen Sie, für die I...

W3C Tutorial (12): W3C Soap Aktivität

Bei Webdiensten geht es um die Kommunikation zwis...

HTML-Tabellen-Tag-Tutorial (44): Tabellenkopfzeilen-Tag

<br />Um die Tabellenstruktur im Quellcode d...