如果有哪一天,你突然发现自己写的的脚本不起作用了,而这一切又只是发生在IE浏览器上,你会怎么办?你是认为自己写的程序有问题呢?还是认为IE处理程序有问题?其实这个问题想都不用想,肯定是我们写的程序有问题。因为我们是程序员,我们要解决的方案就是做一款兼容所有主流浏览器的应用程序。如果应用程序有问题,那就是我们的解决方案不成熟。
这个问题已经发现很久了,只是一直忙于系统功能的开发,而没有去解决浏览器的兼容方案。最近得空,终于有机会去解决一下这个难题,先描述一下这个Bug的表现形式。界面在FireFox等浏览器下页面显示正常,而在IE浏览器下某些CSS样式没有应用上,注意并不是所有的CSS没有起作用,只是有一部分CSS在IE下没有起作用,这里我们可以排除没有引用JS文件或者引用JS路径不正常的问题了。
出现上述问题,我们的第一反应通常都是CSS语法不标准引起的,这些CSS语法在FireFox下可以识别,但是在IE下却不会识别,我们知道不同浏览器处理解析CSS样式表是有一定区别的。不错,我也怀疑自己的CSS语法不规范,但是经过仔细审核后,我发现并非是语法问题。第一,CSS语法采用了标准的通用语法,在各个浏览器下都是相同的;第二,在IE浏览器下,并没有嗅探到相应的class。由此可以断定,应该是那些CSS文件没有被正确引入。
但是我们的CSS文件引入方式都是一样的,并且都是放在CommonThemes同一个文件下进行引用,这样做有两个好处:一是便于管理CSS文件;二是减少了因引用路径不正确而造成的错误。照常理来说,这样做是不该出问题的,然而这也正是那个不按常理出牌的IE的问题所在。
原来在IE浏览器下,通过使用<script type = "javascript"/>来引用文件时,IE仅能识别31个文件。如果在引用的文件大于31个,IE就会自动过滤掉。因为我们将整个系统的CSS文件全都是放在CommonThemes目录下,远远大于31个。所以在第31个CSS文件之后的文件,就不再起作用了。
既然这样,我们就必须把CSS文件分拆放到不同的<script>标签下,以防止一个<script>标签加载CSS文件数量超过31个。我们的解决方案是按照系统的架构及业务需求将CSS引用文件分为多个文件,保证每个文件下CSS的路径数量不超过31个。
IE最多只允许引用31个文件,一般情况下,我们确实不需要在一个脚本下引入这么多的文件。IE之所以这样做,可能是想提高系统运行的效率,防止内存泄露等。只不过仅凭它的一己只想,就进行了文件过滤,实在是大大的不该。别忘了,程序员的目标是解决问题,而非制造问题

转载于:https://www.cnblogs.com/sandianbaozi/archive/2012/11/23/2784587.html

IE浏览器加载CSS文件,但是不起作用的原因相关推荐

  1. 手机浏览器加载不出来css,如何解决浏览器不加载css文件的问题

    解决浏览器不加载css文件的方法:1.检查css路径是否错误并修改:2.将css文件中指定的编码与页面设置统一:3.修改文件后缀的minetype类型:4.检查并修改HTML头部的DOCTYPE声明. ...

  2. php laravel 加载css,Laravel无法加载css文件(Laravel can't load css file)

    Laravel无法加载css文件(Laravel can't load css file) 我无法在Laravel项目中加载css文件. /public/css/style.css确实存在IDE确认, ...

  3. 【Jquery】Jquery动态加载css文件

    前言 很多时候我们需要在页面中引用外部的css文件,下面将介绍一下如何通过Jquery动态加载css文件 方式一(Jquery) var cssFileUrl='../css/home.css'; i ...

  4. 加载css文件的几种方法,CSS 引入方式

    HTML 中引入 CSS 的方式 有 4 种方式可以在 HTML 中引入 CSS.其中有 2 种方式是在 HTML 文件中直接添加 CSS 代码,另外两种是引入 外部 CSS 文件.下面我们就来看看这 ...

  5. php 无法加载css文件,解决ThinkPHP样式无法加载问题(CSS,JS),

    解决ThinkPHP样式无法加载问题(CSS,JS)解决了ThinkPHP风格无法加载的问题(CSS,JS),以下是thinkphp框架教程栏目,对ThinkPHP风格无法加载(CSS,JS)问题的解 ...

  6. js动态加载css文件和js文件的方法

    今天研究了下js动态加载js文件和css文件的方法. 网上发现一个动态加载的方法.摘抄下来,方便自己以后使用 [code lang="html"] <html xmlns=& ...

  7. chrome浏览器加载css、js等静态资源文件的坑

    2019独角兽企业重金招聘Python工程师标准>>> 注意一点:在开发过程发现chrome加载的静态资源文件不是最新,则手工清除缓存和cooike再次刷新就可以了.原因是chrom ...

  8. ASP.NET动态加载CSS文件

    方法一: 通过使页面动态加载不同CSS实现多界面 <%@page language="C#"%> <%@import namespace="System ...

  9. spring MVC 项目 WEB-INF下的jsp不能加载css文件

    一.项目目录 二.解决方法(已解决) 1. jsp文件加入 <link href="<c:url value="/css/main.css" />&qu ...

最新文章

  1. struts2+hibernate+Spring分层开发
  2. 【多线程】ConcurrentLinkedQueue 的实现原理
  3. 【Pytorch学习】用pytorch搭建第一个神经网络
  4. Python中字典对象实现原理
  5. asp.net mvc 使用bootstrap的模态框插件modal
  6. kmp算法的c语言,KMP算法 纯C实现
  7. 【无码专区7】括号序列(思维)
  8. freemaker .flt文件自动换行的问题,map循环获取key和value
  9. 解码(七):音频重采样SwrContext和swr_convert相关函数详解
  10. 为资产分类定义折旧范围_SAP折旧范围概念
  11. 企业邮箱能设置个人昵称吗,如何设置?
  12. linux桌面下雪,分享|Linux/Unix 桌面趣事:让桌面下雪
  13. 智慧城市建设,目前所面临的技术瓶颈是什么?
  14. PS-Photoshop2020版安装包以及安装详细教程
  15. linux 误删除根分区的pv,如何安全的删除Linux LVM中的PV物理卷(硬盘或分区)(4)
  16. 学习TDD:TDD的好处
  17. linux mysql 软连接_linux 软连接的使用
  18. 基础五:光的量子纠缠
  19. RISC和CISC的区别
  20. WRF示例运行(官方示例)

热门文章

  1. 零基础是学java还是python-零基础学习编程,Java、Python你会选择哪个?
  2. python对excel某一列求和-96、python操作excel求和
  3. python篮球-用Python让蔡徐坤在我的命令行里打篮球!|附完整代码
  4. python安装pip-python2.7 安装pip的方法步骤(管用)
  5. python3.6安装pip-python3.6如何安装pip
  6. python处理大量excel数据-python如何批量处理excel数据?
  7. python在excel中的应用-python中的excel操作
  8. 对python来说、一个模块就是一个文件-python导入自定义模块和包
  9. python画五角星-python画五角星和六角星程序 | 学步园
  10. python入门指南bl-入门 第一个python可视化程序 基于pyqt5