suchen
HeimWeb-FrontendCSS-TutorialAnalyse und Lösungen für die Einschränkungen des IE bei CSS-Stylesheets_Experience-Austausch

Es gibt vier gängige Möglichkeiten, HTML-Dokumente mit CSS zu verknüpfen:

Link-Tags verwenden


Stilelemente verwenden

body{background:#fff;}
h1{font-size:2em;}

Verwenden Sie den @import-Befehl

Inline-Stil mit dem Style-Attribut (Inline-Stil) Das sind rote Wörter
In tatsächlichen Anwendungen wird die Verwendung von Inline-Stilen mit dem Stilattribut nicht empfohlen. Der Grund dafür ist nicht viel besser als das Schriftart-Tag und schwächt das zentralisierte Kontrolle von CSS. Vorteile des gesamten Erscheinungsbilds des Dokuments. 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):

Nur ​​das CSS, das mit den ersten 31 Link- oder Style-Tags im Dokument verknüpft ist, kann angewendet werden.

Ab dem 32. ist das mit dem Tag verknüpfte CSS ungültig. In der offiziellen IE-Dokumentation „Alle Stil-Tags nach den ersten 30 Stil-Tags auf einer HTML-Seite werden in Internet Explorer nicht angewendet“ wird diese Einschränkung ebenfalls erwähnt, einschließlich der Verwendung von .xsl. XML-Dateien unterliegen ebenfalls dieser Einschränkung. 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 hat nur die ersten 31 @import-Anweisungen Effektive Anwendung.

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 die @import-Direktive verwendet 34 Mal
Beispiel 6: Verwenden Sie Link- und Style-Tags, um eine CSS-Datei einzuführen, die die @import-Direktive mehr als 31 Mal verwendet
Eine CSS-Datei darf 288 KB nicht überschreiten?

Diese Nachricht stammt von der CSS-Dateigrößenbeschränkung für Internet Explorer.

Das Kaskadierungslimit unter dem @import-Befehl darf 4 Ebenen nicht überschreiten

Beim Einfügen von CSS-Dateien über den @import-Befehl unter IE ist die fünfte Ebene 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.

Die CSS-Einschränkungen von IE treten in den meisten Fällen nicht auf. Selbst wenn Sie auf die beste Lösung stoßen, sollten Sie die CSS-Dateien und Antwort-Tags manuell oder über ein Back-End-Programm zusammenführen, um die Anzahl der http zu minimieren Anfragen ist das erste Prinzip zur Optimierung der Seitendarstellung.

Im IE kann der Wert von Inline- und eingebetteten Stilen über das document.styleSheets-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. Mithilfe von document.styleSheets.length können Sie tatsächlich erkennen, dass der Maximalwert unter IE 31 beträgt.Im Folgenden wird Javascript zum Zusammenführen von Link- und Style-Tags verwendet, um die Einschränkungen unter IE zu lösen:

var fnMergeStyleSheet = function(){
if(!document.styleSheets){
return; }
var aSheet = document.styleSheets,
aStyle = document.getElementsByTagName('style'),
aLink = document.getElementsByTagName('link');
if(aStyle.length + aLink. Länge                                                                                                                                                 🎜> //Weil der von der zurückgegebene Wert Die getElementsByTagName-Methode ist nodeList, also führen Sie beim Löschen eine Schleife in umgekehrter Reihenfolge durch for(var i=aStyle.length-1;i>-1;–i){
var o = aStyle[i]; aCssText.push(o.innerHTML);
if(i>0){
                 o.parentNode.removeChild(o); In ein Array kopiert werden aCloneLink
for(var i=aLink.length-1 ;i>-1;–i){
var o = aLink[i];
if(o.getAttribute && o.getAttribute('rel')==='stylesheet'){
                                                                                           
aCloneLink.push(o.cloneNode(true));                                                               Name('head')[0];
//Durch die vorherige Löschung sind nur noch 2 der ersten 31 Links bzw Stil-Tags bleiben höchstens übrig
//Durch erneutes Hinzufügen des Links aktiviert die Methode des Knotens sein styleSheet-Attribut, um den Stil
zu erhalten for(var i = aCloneLink.length-1;i>-1;–i) {
var o = aCloneLink[i];
oHead.removeChild(o);
aCssText.push(o.styleSheet.cssText); 0].cssText += aCssText.join(“);
} Das Obige ist nur eine einfache und grobe Lösung. Es gibt noch Bereiche, die verbessert werden können.

Das Medienattribut wird nicht berücksichtigt. Wenn mehrere Medien vorhanden sind, sollten diese natürlich nicht berücksichtigt werden. Ich empfehle jedoch, die entsprechenden Stile über die @media-Direktive in dieselbe Datei zu schreiben, wodurch die Anzahl der HTTP-Verbindungen zumindest reduziert werden kann.
Es löst nicht das Problem der 31-fachen Beschränkung des @import-Befehls. Tatsächlich können Sie seinen href-Wert extrahieren und ihn dann aktivieren. In praktischen Anwendungen wird jedoch empfohlen, die @import-Direktive durch das Link-Tag zu ersetzen, da die @import-Direktive im IE dem Schreiben des Link-Tags am Ende des Dokuments entspricht, was zu einem sofortigen Stil führt Problem beim Laden der IE5/6-Seite. Der wissenschaftliche Name ist „Flash of Unstyled Content“ (kurz FOUC). Dieser Fehler kann natürlich vermieden werden, indem ein Link oder ein Skriptelement in den Dokumentkopf eingefügt wird.
Wenn es auf der Seite viele Link- oder Stil-Tags gibt, sind im Allgemeinen viele davon gleich. Sie können dieselben Elemente entfernen, bevor Sie aCssText zusammenführen, um die Codemenge zu reduzieren.
Wenn Sie nicht das vorhandene Stilelement im DOM verwenden, um den Stilcode direkt über das cssText-Attribut hinzuzufügen, sondern ein neues Stilelement zum Hinzufügen erstellen, stellen Sie sicher, dass Sie zuerst das neue Stilelement zum DOM hinzufügen und dann Verwenden Sie den CSSText-Attribute-Add-Style-Code. 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.

Stellungnahme
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
css与xml的区别是什么css与xml的区别是什么Apr 24, 2022 am 11:21 AM

区别是:css是层叠样式表单,是将样式信息与网页内容分离的一种标记语言,主要用来设计网页的样式,还可以对网页各元素进行格式化;xml是可扩展标记语言,是一种数据存储语言,用于使用简单的标记描述数据,将文档分成许多部件并对这些部件加以标识。

Internet Explorer 打开 Edge:如何停止 MS Edge 重定向Internet Explorer 打开 Edge:如何停止 MS Edge 重定向Apr 14, 2023 pm 06:13 PM

长期以来,InternetExplorer的失宠一直不是秘密,但随着Windows11的到来,现实开始了。Edge将来不再有时取代IE,它现在是微软最新操作系统中的默认浏览器。目前,您仍然可以在Windows11中启用InternetExplorer。但是,IE11(最新版本)已经有了一个正式的退役日期,即2022年6月15日,时间在流逝。考虑到这一点,您可能已经注意到InternetExplorer有时会打开Edge,而您可能不喜欢它。那么为什么会这样呢?在

win11无法使用ie11浏览器怎么办?(win11用不了ie浏览器)win11无法使用ie11浏览器怎么办?(win11用不了ie浏览器)Feb 10, 2024 am 10:30 AM

越来越多的用户开始升级win11系统,由于每个用户的使用习惯不同,还是有不少用户在使用ie11浏览器,那么win11系统用不了ie浏览器,该怎么办呢?windows11还支持ie11吗?下面就来看看解决办法。win11无法使用ie11浏览器的解决方法1、首先右键开始菜单,选择“命令提示符(管理员)”打开。2、打开之后,直接输入“Netshwinsockreset”,回车确定。3、确定之后再输入“netshadvfirewallreset&rdqu

Win10打开IE自动跳转到Edge怎么取消_IE浏览器页面自动跳转的解决办法Win10打开IE自动跳转到Edge怎么取消_IE浏览器页面自动跳转的解决办法Mar 20, 2024 pm 09:21 PM

近期不少的win10用户们在使用电脑浏览器的时候发现自己的ie浏览器总是自动的跳转到edge浏览器,那么win10打开ie自动跳转edge怎么关闭?。下面就让本站来为用户们来仔细的介绍一下win10打开ie自动跳转edge关闭方法吧。1、我们登录edge浏览器,点击右上角...,找下拉的设置选项。2、我们进入设置后,在左侧栏点击默认浏览器。3、最后我们在兼容性中,勾选不允许IE模式下重新加载网站,重启ie浏览器即可。

rtl在css是什么意思rtl在css是什么意思Apr 24, 2022 am 11:07 AM

在css中,rtl是“right-to-left”的缩写,是从右往左的意思,指的是内联内容从右往左依次排布,是direction属性的一个属性值;该属性规定了文本的方向和书写方向,语法为“元素{direction:rtl}”。

ie快捷方式无法删除如何解决ie快捷方式无法删除如何解决Jan 29, 2024 pm 04:48 PM

ie快捷方式无法删除的解决办法:​1、权限问题;2、快捷方式损坏;3、软件冲突;4、注册表问题;5、恶意软件;6、系统问题;7、重新安装IE;8、使用第三方工具;9、检查快捷方式的目标路径;10、考虑其他因素;11、咨询专业人士。详细介绍:​1、权限问题,右键点击快捷方式,选择“属性”,在“安全”选项卡中,确保有足够的权限删除该快捷方式,如果没有,可以尝试以管理员身份运行等等。

一个时代的结束:Internet Explorer 11 已退役,这是你需要知道的一个时代的结束:Internet Explorer 11 已退役,这是你需要知道的Apr 20, 2023 pm 06:52 PM

2022年6月15日是Microsoft结束对InternetExplorer11(IE11)的支持并关闭其旧版浏览器章节的日子。一段时间以来,该公司一直在提醒用户注意这一生命周期结束日期,并呼吁他们计划迁移到MicrosoftEdge。Microsoft将IE11与Windows8.1捆绑在一起,作为Windows的现代默认Web浏览器。尽管它从未达到Chrome的(当前)高度,但它是2014年使用量第二大的桌面浏览器,仅次于IE8。当然,随着20

css怎么设置i不是斜体css怎么设置i不是斜体Apr 20, 2022 am 10:36 AM

在css中,可以利用“font-style”属性设置i元素不是斜体样式,该属性用于指定文本的字体样式,当属性值设置为“normal”时,会显示元素的标准字体样式,语法为“i元素{font-style:normal}”。

See all articles

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heiße Werkzeuge

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

MinGW – Minimalistisches GNU für Windows

MinGW – Minimalistisches GNU für Windows

Dieses Projekt wird derzeit auf osdn.net/projects/mingw migriert. Sie können uns dort weiterhin folgen. MinGW: Eine native Windows-Portierung der GNU Compiler Collection (GCC), frei verteilbare Importbibliotheken und Header-Dateien zum Erstellen nativer Windows-Anwendungen, einschließlich Erweiterungen der MSVC-Laufzeit zur Unterstützung der C99-Funktionalität. Die gesamte MinGW-Software kann auf 64-Bit-Windows-Plattformen ausgeführt werden.

Herunterladen der Mac-Version des Atom-Editors

Herunterladen der Mac-Version des Atom-Editors

Der beliebteste Open-Source-Editor

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

mPDF

mPDF

mPDF ist eine PHP-Bibliothek, die PDF-Dateien aus UTF-8-codiertem HTML generieren kann. Der ursprüngliche Autor, Ian Back, hat mPDF geschrieben, um PDF-Dateien „on the fly“ von seiner Website auszugeben und verschiedene Sprachen zu verarbeiten. Es ist langsamer und erzeugt bei der Verwendung von Unicode-Schriftarten größere Dateien als Originalskripte wie HTML2FPDF, unterstützt aber CSS-Stile usw. und verfügt über viele Verbesserungen. Unterstützt fast alle Sprachen, einschließlich RTL (Arabisch und Hebräisch) und CJK (Chinesisch, Japanisch und Koreanisch). Unterstützt verschachtelte Elemente auf Blockebene (wie P, DIV),