recherche
Maisoninterface Webtutoriel CSSAnalyse et solutions aux restrictions d'IE sur les feuilles de style CSS_Échange d'expérience

Il existe quatre manières courantes d'associer des documents HTML à CSS :

Utiliser des balises de lien


Utiliser des éléments de style

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

Utilisez la commande @import

@import url(sheet1.css);
@import "sheet2.css"

Style en ligne utilisant l'attribut style (style en ligne) Ce sont des mots rouges
Dans les applications réelles, l'utilisation de styles en ligne utilisant l'attribut style n'est pas recommandée. XHTML1.1 a standardisé son utilisation car elle n'est pas recommandée. La raison est simple. Cette méthode n'est pas bien meilleure que la balise font et affaiblit la balise centralisée. contrôle du CSS. Avantages de l’apparence globale du document. Les trois premières méthodes utilisent des balises de lien et des balises de style, et ont les restrictions suivantes dans IE (y compris IE6, IE7 et IE8 beta1) :

Seul le CSS associé aux 31 premières balises de lien ou de style du document peut être appliqué.

A partir du 32ème, le CSS associé à son tag sera invalide. La documentation officielle d'IE Toutes les balises de style après les 30 premières balises de style sur une page HTML ne sont pas appliquées dans Internet Explorer mentionne également cette restriction, y compris l'utilisation de fichiers .xsl .xml ont également cette restriction. Mais il semble que la mauvaise quantité ait été écrite. Veuillez regarder IE :

Exemple 1 : 34 balises de style sont appliquées en même temps
Exemple 2 : 1 balise de style et 34 balises de lien sont appliquées en même temps
Une balise de style n'a qu'une les 31 premières instructions @import Application efficace.

Ignorer à partir de la 32ème directive @import. Veuillez consulter :

Exemple 3 : Utilisez la directive @import 34 fois dans une balise de style.

Seules les 31 premières directives @import d'un fichier css sont effectivement appliquées.

Ignorer à partir de la 31ème directive @import. Veuillez consulter :

Exemple 4 : utilisez la balise de lien pour introduire un fichier CSS qui utilise la directive @import 34 fois
Exemple 5 : utilisez la balise de style pour introduire un fichier CSS qui utilise la directive @import 34 fois
Exemple 6 : Utiliser des balises de lien et de style pour introduire un fichier CSS qui utilise la directive @import plus de 31 fois
Un fichier CSS ne peut pas dépasser 288 Ko ?

Cette nouvelle provient de la limite de taille de fichier CSS d'Internet Explorer.

La limite en cascade sous la commande @import ne peut pas dépasser 4 couches

Lors de l'introduction de fichiers CSS via la commande @import sous IE, la cinquième couche sera invalide. Cette limite provient de la limite Cascade via la règle @import. En effet, en raison de la prise en charge imparfaite des navigateurs pour l'imbrication multi-niveaux, même si vous devez utiliser la directive @import pour introduire les fichiers CSS, ne dépassez pas 2 niveaux.

Les restrictions d'IE sur CSS ne seront pas rencontrées dans la plupart des cas. Même si vous rencontrez la meilleure solution, vous devez fusionner les fichiers CSS et les balises de réponse manuellement ou via un programme back-end, en minimisant le nombre de http. requêtes est le premier principe d’optimisation du rendu des pages.

Dans IE, la valeur des styles en ligne et intégrés peut être modifiée via l'objet document.styleSheets (pris en charge par Firefox, Opera9 et Safari3.1). Cet objet n'est disponible que lorsque le document contient des éléments de style ou de lien. En fait, en utilisant document.styleSheets.length, vous pouvez voir que la valeur maximale sous IE est de 31.Ce qui suit utilise Javascript pour fusionner les balises de lien et de style afin de résoudre les limitations sous IE :

var fnMergeStyleSheet = function(){
if(!document.styleSheets){
return
}
var aSheet = document.styleSheets,
aStyle = document.getElementsByTagName('style'),
aLink = document.getElementsByTagName('link');
if(aStyle.length + aLink. longueur                                                                                                                                                                                         🎜> // Enregistrez le style dans la balise de style, puis supprimez la balise, mais conservez la premier
//Parce que la valeur renvoyée par le La méthode getElementsByTagName est nodeList, donc lors de la suppression, bouclez dans l'ordre inverse
for(var i=aStyle.length-1;i>-1;–i){
var o = aStyle[i]
aCssText.push(o.innerHTML);
if(i>0){
                  o.parentNode.removeChild(o); Être copié dans un tableau 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));                                                                             
var oHead = document.getElements ByTagName('head')[0];
//Grâce à la suppression précédente, seulement 2 des 31 premiers liens ou les balises de style sont laissées au maximum
//En rajoutant le lien La méthode du nœud active son attribut styleSheet pour obtenir le style
for(var i = aCloneLink.length-1;i>-1;–i) {
var o = aCloneLink[i];
oHead.appendChild(o);
aCssText.push(o.styleSheet.cssText);
oHead.removeChild(o); 0].cssText += aCssText.join(”);
}
Ce qui précède n'est qu'une solution simple et approximative. Veuillez consulter l'exemple 1 et l'exemple 2 pour une démonstration. Il y a encore des domaines qui peuvent être améliorés :

L'attribut media n'est pas pris en compte. S'il y a plusieurs médias, ils doivent être fusionnés séparément. Bien entendu, l'impact de rel="alternate stylesheet" dans la balise de lien n'est pas pris en compte. Mais je recommande d'écrire les styles correspondants dans le même fichier via la directive @media, ce qui peut au moins réduire le nombre de connexions HTTP.
Cela ne résout pas le problème de la limite de 31 fois de la commande @import. En fait, vous pouvez extraire sa valeur href puis l'activer. Cependant, dans les applications pratiques, il est recommandé d'utiliser la balise link pour remplacer la directive @import. En effet, la directive @import dans IE équivaut à écrire la balise link au bas du document, ce qui provoquera un style instantané. problème lorsque la page IE5/6 est chargée. Le nom scientifique est " "Flash of Unstyled Content" (appelé FOUC), bien sûr, ce bug peut être évité en plaçant un lien ou un élément de script dans l'en-tête du document.
De manière générale, s'il y a un grand nombre de balises de lien ou de style sur la page, beaucoup d'entre elles sont susceptibles d'être identiques. Vous pouvez supprimer les mêmes éléments avant de fusionner aCssText pour réduire la quantité de code.
Si vous n'utilisez pas l'élément de style existant dans le DOM pour ajouter directement le code de style via l'attribut cssText, mais créez un nouvel élément de style à ajouter, assurez-vous d'abord d'ajouter le nouvel élément de style au DOM, puis utilisez le code de style d'ajout des attributs cssText. Au contraire, le code de style qu'il ajoute semble être analysé par l'analyseur de style d'IE6 avant d'être ajouté, donc !imporant et le hack seront invalides. Veuillez consulter l'exemple 7. Il n'est pas recommandé d'ajouter de nouveaux styles en ajoutant de nouveaux éléments de style, car cela peut facilement atteindre les limites d'IE.

Déclaration
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter 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

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

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

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

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

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浏览器即可。

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

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

一个时代的结束: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

See all articles

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌

Outils chauds

MantisBT

MantisBT

Mantis est un outil Web de suivi des défauts facile à déployer, conçu pour faciliter le suivi des défauts des produits. Cela nécessite PHP, MySQL et un serveur Web. Découvrez nos services de démonstration et d'hébergement.

MinGW - GNU minimaliste pour Windows

MinGW - GNU minimaliste pour Windows

Ce projet est en cours de migration vers osdn.net/projects/mingw, vous pouvez continuer à nous suivre là-bas. MinGW : un port Windows natif de GNU Compiler Collection (GCC), des bibliothèques d'importation et des fichiers d'en-tête librement distribuables pour la création d'applications Windows natives ; inclut des extensions du runtime MSVC pour prendre en charge la fonctionnalité C99. Tous les logiciels MinGW peuvent fonctionner sur les plates-formes Windows 64 bits.

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

SublimeText3 version anglaise

SublimeText3 version anglaise

Recommandé : version Win, prend en charge les invites de code !

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP