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

Zusammenfassung der Lastausgleichsmethoden von Nginx

Um den Lastenausgleich zu verstehen, müssen Sie s...

Implementierung der Clusterkonstruktion im Docker Redis5.0-Cluster

Systemumgebung: Ubuntu 16.04LTS In diesem Artikel...

PostgreSQL-Materialisierte Ansichtsprozessanalyse

Dieser Artikel stellt hauptsächlich die Prozessan...

MySQL-Reihe: Datenbankdesign, drei Paradigmen, Tutorial-Beispiele

Inhaltsverzeichnis 1. Wissensbeschreibung der dre...

Implementierung von Nginx Hot Deployment

Inhaltsverzeichnis Semaphor Nginx-Hot-Bereitstell...

7 Interviewfragen zu JS, wie viele können Sie richtig beantworten

Vorwort In JavaScript ist dies der Kontext zum Au...

Einführung in die Verwendung des MySQL mysqladmin-Clients

Inhaltsverzeichnis 1. Überprüfen Sie den Status d...

Installations-Tutorial zur komprimierten Version von MySQL 8.0.11 unter Win10

In diesem Artikel finden Sie das Installations-Tu...

Tipps zur Verwendung kleiner HTML-Tags

Phrasenelemente wie <em></em> können d...

Detaillierte Verwendung der MySQL-Funktionen row_number() und over()

Syntaxformat: row_number() über (Partition durch ...