中样式表只有前半部分起作用的原因,关于编码问题【10bet手机官网】
分类:web前端

很奇怪的是,除 IE 6 外均正常,只有 IE 6 有部分样式不起作用,经测试是前半部分起作用,后半部分不起作用。

      网页采用了 UTF-8 编码格式,这本来没有问题,问题是外部 CSS 文件默认是 ANSI 编码,并没有保存为 UTF-8 格式。可能你会发现在一般情况下这样也是没有问题的,然而当 CSS 文件中包含有中文注释时就可能不尽如人意了!

将制作好的 .htm 网页粘贴到 .aspx 中,以便在其中嵌入 ASPX 代码,问题出来了,浏览器中查看时,在 IE 6 中格式是乱的,在其他浏览器中正常。

关于编码问题,html改变成jsp后
我在开发中,将一个html页面改成jsp页面后,有一部分css样式在IE中的显示变的混乱了,原因是我在<%@ page%>中设置的编码是UTF-8,改成GBK等中文编码后,显示正常,这是什么原因,另外我在css文件中发现,我用的是aptana编辑css,发现
font-family:"宋体";报错,错误是Lexical error。这是为什么,请各位指点一下,怎么解决
[b]问题补充:[/b]
谢谢一楼的回答,第一个问题解决
第二个问题我补充下,我的要求是写中文,但是想让这个编辑器不报错。虽然编辑器报错但是css是正常的,只是编辑器不认识中文,怎么修改设置使它检测到中文的时候不报错

原来这个 css 文件的编码和 html 文件的编码不同,导致 IE 6 错误地判断 css 文件的编码,而 css 文件中间有一个中文的注释。前面是英文,兼容的,遇到中文后,错误的编码导致错误的 CSS,也就出现了这个奇怪的问题。

  估计是 IE6 版本以下的浏览器在解析这个 CSS 文件时因为编码问题而无法正确解析,所以才会发生 CSS 在 IE6 下不起作用的情况。看来微软已注意到这个问题,在 IE7 中把它修复了。但是用IE6 的人还是不少。因此这个问题需要解决:

原来,这其中有个 .css 文件,.css 文件用的是 ANSI 编码,与 .aspx 的 UTF-8 编码不同,在 IE 6 中遇到这种情况,它头都大了,编码就会搞错。

  方法一:把 CSS、JS 和网页文件都统一保存为 UTF-8 格式。

而 css 中有个中文(字体名称),后面又没有用分号结束该声明,编码认错时,就把中文认错了,又由于后面无结束符,导致这个错误影响后面的全部代码,就搞得在 IE 6 中,格式是乱的。

  方法二:去掉 CSS、JS 中的中文注释,或者改为英文。

  上文为IE6因为编码问题无法正确解析CSS文件

  有时候我们发现我们写的html页面引用外部css文件的时候在IE7和FF中能够很好的被解析,即能正常显示,可在IE6中却完全没有被解析,即 css文件里的样式根本没应用到我们的html页面,这是怎么回事?开始我把css文件里头的所有样式都复制粘贴到html页面中的

中,这样做以后,IE6、IE7、FF都能正常显示了,这也就说明外部的css文件应该是存在什么问题了,为什么在IE6中出现这问题,而在IE7和FF中却没有?网上google了下,发现是IE6中对页面的编码有严格的要求,我查看了下,朋友发过来的css文件用的编码是GB2312的,而html文件用的是utf-8的,原来问题就出在这里了,我把css文件内容的编码用ed改成utf- 8,再次测试的时候,一切恢复正常了,还有就是我发现朋友的css文件里面用中文注释,严重建议朋友们不要在css文件里面用中文来注释,这样也会引起编码的问题。

本文由10bet手机官网发布于web前端,转载请注明出处:中样式表只有前半部分起作用的原因,关于编码问题【10bet手机官网】

上一篇:没有了 下一篇:没有了
猜你喜欢
热门排行
精彩图文