IE-Einschränkungen und Lösungen für CSS-Stylesheets
Es gibt vier gängige Möglichkeiten, HTML-Dokumente mit CSS zu verknüpfen:
-
Link-Tags verwenden
<link rel="stylesheet" type="text/css" href="sheet.css" />
Nach dem Login kopieren Verwenden Sie das Stilelement
<style type="text/css"> body{background:#fff;} h1{font-size:2em;} </style>
Nach dem Login kopierenVerwenden Sie die @import-Direktive
<style type="text/css"> @import url(sheet1.css); @import "sheet2.css"; </style>
Nach dem Login kopierenInline-Stil mit dem Style-Attribut
<p style="color:#f00;">这是红色的字</p>
Nach dem Login kopieren
In tatsächlichen Anwendungen wird die Verwendung des Inline-Stils mit dem Style-Attribut nicht mehr empfohlen Im Standard ist der Grund einfach. Diese Methode ist nicht viel besser als das Font-Tag und schwächt den Vorteil von CSS, das Erscheinungsbild des gesamten Dokuments zentral zu steuern. Die ersten drei Methoden verwenden Link-Tags und Style-Tags und unterliegen den folgenden Einschränkungen im IE (einschließlich IE6, IE7 und IE8 Beta1):
Es gibt nur die ersten 31 Links Im Dokument oder Style-Tag zugehöriges CSS kann angewendet werden.
Ab dem 32. ist das mit dem Tag verknüpfte CSS ungültig. In der offiziellen IE-Dokumentation „Alle Style-Tags nach den ersten 30 Style-Tags auf einer HTML-Seite werden in Internet Explorer nicht angewendet“ wird diese Einschränkung ebenfalls erwähnt, einschließlich dieser Einschränkung in .xml-Dateien, die .xsl verwenden. Aber es scheint, dass die falsche Menge geschrieben wurde. Bitte schauen Sie sich IE an:
Beispiel 1: 34 Style-Tags werden gleichzeitig angewendet
Beispiel 2: 1 Style-Tag und 34 Link-Tags werden gleichzeitig angewendet
Ein Style-Tag ist nur für die ersten 31
@import
Anweisungen gültig.Ab der 32. @import-Direktive ignorieren. Siehe:
Beispiel 3: Verwenden Sie die
@import
-Direktive 34 Mal in einem Style-Tag.Nur die ersten 31 @import-Anweisungen einer CSS-Datei werden effektiv angewendet.
Ab der 31. @import-Direktive ignorieren. Siehe:
Beispiel 4: Verwenden Sie das Link-Tag, um eine CSS-Datei einzuführen, die die
@import
-Direktive 34 Mal verwendet.Beispiel 5: Verwenden Sie das Style-Tag, um eine CSS-Datei einzuführen, die verwendet die
@import
-Direktive 34 Mal DateiBeispiel 6: Verwenden Sie Link- und Style-Tags, um eine CSS-Datei einzuführen, die mehr als 31
@import
-Anweisungen bzw.< verwendet 🎜> Eine CSS-Datei darf 288 KB nicht überschreiten?
Diese Nachricht stammt von der CSS-Dateigrößenbeschränkung für Internet Explorer.Das Stapellimit unter dem @import-Befehl darf 4 Ebenen nicht überschreiten
Beim Einführen von CSS-Dateien über den @import-Befehl unter IE wird Layer 5 ungültig. Dieses Limit ergibt sich aus dem Cascade-Limit über die @import-Regel. Aufgrund der unvollständigen Unterstützung von Browsern für die Verschachtelung mehrerer Ebenen sollten Sie 2 Ebenen nicht überschreiten, selbst wenn Sie die @import-Direktive zum Einführen von CSS-Dateien verwenden müssen.
-Objekt geändert werden (unterstützt von Firefox, Opera9 und Safari3.1). Dieses Objekt ist nur verfügbar, wenn das Dokument Stil- oder Linkelemente enthält. Tatsächlich können Sie anhand von document.styleSheets
erkennen, dass der Maximalwert unter IE 31 beträgt. Im Folgenden wird Javascript verwendet, um die Tags document.styleSheets.length
und link
zusammenzuführen, um die Einschränkungen unter IE zu lösen: style
var fnMergeStyleSheet = function(){ if(!document.styleSheets){ return; } var aSheet = document.styleSheets, aStyle = document.getElementsByTagName('style'), aLink = document.getElementsByTagName('link'); if(aStyle.length + aLink.length < 32 || !aSheet[0].cssText){ //document.styleSheets.cssText 只有IE支持 return; } var aCssText = [],aCloneLink = []; //把style标签中的样式存入,然后删掉该标签,但保留第一个 //因为由getElementsByTagName方法返回值是nodeList,所以删除时循环用倒序 for(var i=aStyle.length-1;i>-1;--i){ var o = aStyle[i]; aCssText.push(o.innerHTML); if(i>0){ o.parentNode.removeChild(o); } } //在IE中只有在31之内的link标签才能通过其styleSheet.cssText获取样式 //无法的获取复制到一个数组aCloneLink中 for(var i=aLink.length-1;i>-1;--i){ var o = aLink[i]; if(o.getAttribute && o.getAttribute('rel')==='stylesheet'){ if(o.styleSheet){ aCssText.push(o.styleSheet.cssText); }else{ aCloneLink.push(o.cloneNode(true)); } if(i>0){ o.parentNode.removeChild(o); } } } var oHead = document.getElementsByTagName('head')[0]; //通过前面的删除,前31个link或者style标记最多只剩下2个 //通过重新增加link节点的方法激活其styleSheet属性,从而获取样式 for(var i = aCloneLink.length-1;i>-1;--i){ var o = aCloneLink[i]; oHead.appendChild(o); aCssText.push(o.styleSheet.cssText); oHead.removeChild(o); } //把所有的样式都复制给第一个标签 aSheet[0].cssText += aCssText.join(''); }
- berücksichtigt nicht das
-Attribut. Wenn es mehrere
media
s gibt, sollten diese natürlich separat zusammengeführt werden 🎜> markiertmedia
wird nicht berücksichtigt. Ich empfehle jedoch, die entsprechenden Stile über die Direktivelink
in dieselbe Datei zu schreiben, wodurch die Anzahl der HTTP-Verbindungen zumindest reduziert werden kann.rel="alternate stylesheet"
@media
löst nicht das Problem des 31-fachen Limits der @import-Anweisung. Tatsächlich können Sie seinen href-Wert extrahieren und ihn dann aktivieren. In praktischen Anwendungen wird jedoch empfohlen, das - -Tag zu verwenden, um die @import-Direktive zu ersetzen, da die
-Direktive im IE dem Schreiben des Link-Tags am Ende des Dokuments entspricht, was zu sofortiger Wirkung führt Stilprobleme beim Laden der IE5/6-Seite Wissenschaftlicher Name Der Fehler namens „Flash of Unstyled Content“ (kurz FOUC) kann natürlich vermieden werden, indem ein Link oder ein Skriptelement im Dokumentkopf platziert wird.
link
@import
Im Allgemeinen enthalten alle - - oder
-Tags, die auf der Seite angezeigt werden, wahrscheinlich viele der gleichen Elemente. Sie können die gleichen Elemente entfernen, bevor Sie aCssText mit zusammenführen Reduzieren Sie die Codemenge.
link
Wenn Sie nicht die vorhandenen Stilelemente im DOM verwenden, um Stilcode direkt über das cssText-Attribut hinzuzufügen, sondern ein neues Stilelement zum Hinzufügen erstellen, be Stellen Sie sicher, dass Sie zuerst darauf achten. Fügen Sie zuerst das neue Stilelement zum DOM hinzu und fügen Sie dann den Stilcode über das CSSText-Attribut hinzu. Im Gegenteil, der hinzugefügte Stilcode scheint vor dem Hinzufügen vom Stilparser des IE6 analysiert zu werden, sodass sowohl !important als auch der Hack ungültig sind. Bitte sehen Sie sich Beispiel 7 an. Es wird nicht empfohlen, neue Stile durch Hinzufügen neuer Stilelemente hinzuzufügen, da dies leicht zu den Einschränkungen des IE führen kann.
Das obige ist der detaillierte Inhalt vonIE-Einschränkungen und Lösungen für CSS-Stylesheets. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Die Verwendung von Bootstrap in Vue.js ist in fünf Schritte unterteilt: Startstrap installieren. Bootstrap in main.js. Verwenden Sie die Bootstrap -Komponente direkt in der Vorlage. Optional: benutzerdefinierter Stil. Optional: Verwenden Sie Plug-Ins.

HTML definiert die Webstruktur, CSS ist für Stil und Layout verantwortlich, und JavaScript ergibt eine dynamische Interaktion. Die drei erfüllen ihre Aufgaben in der Webentwicklung und erstellen gemeinsam eine farbenfrohe Website.

Es gibt zwei Möglichkeiten, eine Bootstrap -Split -Zeile zu erstellen: Verwenden des Tags, das eine horizontale Split -Linie erstellt. Verwenden Sie die CSS -Border -Eigenschaft, um benutzerdefinierte Style Split -Linien zu erstellen.

WebdevelopmentRelieSonHtml, CSS und JavaScript: 1) HtmlStructuresContent, 2) CSSstylesit und 3) JavaScriptaddssinteraktivität, Bildung von TheBasisofModerernwebexperiences.

Es gibt verschiedene Möglichkeiten, Bilder in Bootstrap einzufügen: Bilder direkt mit dem HTML -IMG -Tag einfügen. Mit der Bootstrap -Bildkomponente können Sie reaktionsschnelle Bilder und weitere Stile bereitstellen. Legen Sie die Bildgröße fest und verwenden Sie die IMG-Fluid-Klasse, um das Bild anpassungsfähig zu machen. Stellen Sie den Rand mit der img-beliebten Klasse ein. Stellen Sie die abgerundeten Ecken ein und verwenden Sie die IMG-Rund-Klasse. Setzen Sie den Schatten, verwenden Sie die Schattenklasse. Größen Sie die Größe und positionieren Sie das Bild im CSS -Stil. Verwenden Sie mit dem Hintergrundbild die CSS-Eigenschaft im Hintergrund.

Wie benutze ich die Bootstrap -Taste? Führen Sie Bootstrap -CSS ein, um Schaltflächenelemente zu erstellen, und fügen Sie die Schaltfläche "Bootstrap" hinzu, um Schaltflächentext hinzuzufügen

Um das Bootstrap -Framework einzurichten, müssen Sie die folgenden Schritte befolgen: 1. Verweisen Sie die Bootstrap -Datei über CDN; 2. Laden Sie die Datei auf Ihrem eigenen Server herunter und hosten Sie sie. 3.. Fügen Sie die Bootstrap -Datei in HTML hinzu; 4. Kompilieren Sie Sass/weniger bei Bedarf; 5. Importieren Sie eine benutzerdefinierte Datei (optional). Sobald die Einrichtung abgeschlossen ist, können Sie die Grid -Systeme, -Komponenten und -stile von Bootstrap verwenden, um reaktionsschnelle Websites und Anwendungen zu erstellen.

Um die Größe der Elemente in Bootstrap anzupassen, können Sie die Dimensionsklasse verwenden, einschließlich: Einstellbreite:.
