Heim > Web-Frontend > CSS-Tutorial > Warum funktionieren meine dynamisch geladenen CSS-Stylesheets nur in einigen Browsern (und wie kann ich das beheben)?

Warum funktionieren meine dynamisch geladenen CSS-Stylesheets nur in einigen Browsern (und wie kann ich das beheben)?

Linda Hamilton
Freigeben: 2024-11-25 14:30:14
Original
681 Leute haben es durchsucht

Why Do My Dynamically Loaded CSS Stylesheets Only Work in Some Browsers (and How Can I Fix It)?

CSS-Stylesheets dynamisch im IE laden

Das dynamische Laden von CSS erweist sich oft als unschätzbar wertvoll für die Erstellung responsiver Designs, die die Latenz beim Laden der Seite minimieren. Bei Verwendung dieser Technik stellen Benutzer jedoch häufig fest, dass ihre Stile nur für einige der von ihnen gewählten Browser gelten.

Im folgenden Beispiel werden die CSS-Stile erfolgreich in Firefox und Google Chrome geladen, können jedoch im Internet nicht geladen werden Explorer (IE).

var head = document.getElementsByTagName('head')[0];
$(document.createElement('link'))
    .attr({ type: 'text/css', href: '../../mz/mz.css', rel: 'stylesheet' })
    .appendTo(head);
Nach dem Login kopieren

Lösung:

Der Unterschied ergibt sich aus der Art und Weise, wie der IE die Stylesheet-Verarbeitung handhabt. Im Gegensatz zu anderen Browsern erlaubt der IE das Anhängen von Stylesheets erst, wenn die integrierte Style-Engine alle mit der Seite geladenen Styles analysiert hat. Um dies zu umgehen, nutzen wir die Methode document.createStyleSheet(url), die das Stylesheet während des Ladevorgangs zuverlässig hinzufügt.

url = 'style.css';
if (document.createStyleSheet)
{
    document.createStyleSheet(url);
}
else
{
    $('<link rel="stylesheet" type="text/css" href="' + url + '" />').appendTo('head'); 
}
Nach dem Login kopieren

Durch die Einbindung dieser Methode stellen wir sicher, dass das CSS in allen Browsern angewendet wird, sogar diejenigen mit dem einzigartigen Ladeverhalten des Internet Explorers.

Das obige ist der detaillierte Inhalt vonWarum funktionieren meine dynamisch geladenen CSS-Stylesheets nur in einigen Browsern (und wie kann ich das beheben)?. 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