ie浏览器网页颜色css过滤不了

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ie浏览器网页颜色css过滤不了相关的知识,希望对你有一定的参考价值。

zoukankan html css js c++ java
IE浏览器加载CSS文件,但是不起作用的原因
如果有哪一天,你突然发现自己写的的脚本不起作用了,而这一切又只是发生在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之所以这样做,可能是想提高系统运行的效率,防止内存泄露等。只不过仅凭它的一己只想,就进行了文件过滤,实在是大大的不该。别忘了,程序员的目标是解决问题,而非制造问题
相关阅读:
#define IOFFSETOF(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)
互联网地址处理例程
android系统工程模式启动过程详解
知识填充
git 本地回退
理解JS中的Promise对象
mysql server version for the right syntax to use near 'identified
尾递归要注意的点
事件捕获和事件冒泡的理解
v 2ra-y_build_a_sever_in_vltru
原文地址:https://www.cnblogs.com/sandianbaozi/p/2784587.html
最新文章
微信过滤特殊表情符号
登陆小demo
Webpack中hash、chunkhash和contenthash三者的区别
Centos7.5中nginx报错:nginx: [error] invalid PID number "" in "/run/nginx.pid" 解决方法
CentOS 7.6下安装 NVM 管理不同版本的 Node.js
linux命令大全
在centos7中添加一个新用户,并授权
CentOS与Ubuntu的区别
Http2优点
Windows环境下Nginx配置本地虚拟域名
热门文章
Nginx是什么 ? 能干嘛 ?
编程语言的实现,从AST(抽象语法树)开始
MediaTrackConstraints字典对象
MediaDevices.getUserMedia()
MediaDevices对象
Navigator对象
Java Udp Socket Simple Demo
私有地址空间
recv & recvfrom
IOFFSETOF ICONTAINEROF IQUEUE_ENTRY
Copyright © 2011-2022 走看看
参考技术A 如果不是svg的图片格式,filter在ie浏览器上都不支持。

如果是svg的话,filter也只是在ie10和11上支持。

详细见caniuse

可能是当前的IE版本不兼容部分CSS3属性哦

简单的JS+CSS实现网页自定义换肤

参考技术A

主要原理是利用 css 变量设置颜色,用 js 动态修改变量,使颜色变化,兼容性如下;

实现换肤之前先要了解一下伪类选择器 :root ,还有css的 var() 函数和 setProperty() 函数

:root 是一个伪类,表示文档根元素,非 IE IE8 及以上浏览器都支持,在 :root 中声明相当于全局属性,只要当前页面引用了 :root 所在的文件,都可以使用css var() 函数来引用;

语法

var() 函数,可以代替元素中,任何属性中的值的任何部分; var() 函数不能作为属性名、选择器或者其他除了属性值之外的值,这样做通常会产生无效的语法或者一个没有关联到变量的值;

语法

setProperty() 方法用于设置一个新的 css 属性,同时也可以修改 css 声明块中已存在的属性,兼容性如下;

语法

如果看了觉得有帮助的,我是@ 鹏多多11997110103 ,欢迎 点赞 关注 评论;END

往期文章

个人主页

以上是关于ie浏览器网页颜色css过滤不了的主要内容,如果未能解决你的问题,请参考以下文章

css过滤器不适用于IE11

如果存在背景颜色,IE8 渐变过滤器将不起作用

想用css把网页做成灰色的,请问如何兼容IE10?

IE8网页显示不了按钮和边框

急~~~~~~~~!!!IE用不了其他浏览器可以用

用火狐浏览器可以访问网页,其他ie,谷歌浏览器却访问不了网页,是啥原因? 其他例如下载啥都正常