9月27

IE6里样式表不起作用解决方法

| |
17:15 W3C前端技术  From: 本站原创
IE6里样式表不起作用解决方法

做网站的朋友经常发现我们写的html页面引用外部css文件的时候在IE7,IE8和FF中能正常作用,即能正常显示,可在IE6中却完全没有作用到,即css文件里的样式根本未被解析到我们的html页面,这是什么原因?开始我把css文件里头的所有样式都复制粘贴到html页面中的中,这样做以后,IE6、IE7、FF都能正常显示了,这也就说明外部的css文件应该是存在什么问题了,为什么在IE6中出现这问题,而在IE7和FF中却没有?IE6对页面的编码有严格的要求,我查看了下,朋友发过来的css文件用的编码是GB2312的,而html文件用的是utf-8的,原来问题就出在这里了,我把css文件内容的编码用ed(或记事本另存为)改成utf-8,再次测试的时候,一切恢复正常了,还有就是我发现朋友的css文件里面用中文注释,严重建议朋友们不要在css文件里面用中文来注释,这样也会引起编码的问题,下面是引用引用《IE6因为编码问题无法正确解析CSS文件》片断:

网页采用了 UTF-8 编码格式,这本来没有问题,问题是外部 CSS 文件默认是 ANSI 编码,并没有保存为 UTF-8 格式。可能你会发现在一般情况下这样也是没有问题的,然而当 CSS 文件中包含有中文注释时就可能不尽如人意了!估计是 IE6 版本以下的浏览器在解析这个 CSS 文件时因为编码问题而无法正确解析,所以才会发生 CSS 在 IE6 下不起作用的情况。看来微软已注意到这个问题,在 IE7 中把它修复了。但是用 IE6 的人还是不少。因此这个问题需要解决:
方法一:把 CSS、JS 和网页文件都统一保存为 UTF-8 格式。
方法二:去掉 CSS、JS 中的中文注释,或者改为英文。

使用asp.net当把以前使用过的UTF-8编码的页面改为GB2312编码时,也会出现这种现象,并且我们用记事本将HTML和CSS文件都保存为ANSI的编码格式仍然不能解决问题,这时候可以在页面头部加上页面文件类型和响应编码信息:<%@ Page Language="C#" ContentType="text/html" ResponseEncoding="gb2312" %>,标签里加上,刷新,OK了。

后来经研究,发现这是IE6不支持黑体的BUG,把黑体去掉或者改成“宋体”问题同样得到解决。
阅读(4460) | 评论(2) | 引用(0)
tommyhuc.cn网友
2011/05/13 17:14
This article is really great, strong support.
tommyhuc.cn网友
2010/09/28 10:43
IE6可以去死了!
分页: 1/1 第一页 1 最后页
在此留下酱油瓶-:)
表情
emotemotemotemotemotemotemotemotemotemotemotemotemotemotemotemot
打开HTML
打开UBB
打开表情
隐藏
记住我

您的大名(例如:小明) : 

密码(可不填) :  游客无需密码

网址 (可不填) : 

电邮 (可不填) :  [注册]