我向来是鄙视IE浏览器的,它总是不合群,特别是IE6。痛苦的是虽然微软已经开始IE6倒计时,国外使用IE6者几乎绝灭,而国内IE6用户依然众多。公司不肯放弃这些特殊用户,只得累生死调IE6兼容。
今天这个IE6出现的错误比较独特,页面打开后跟其它页面效果差别非常大,等于说是IE6下完全没有样式的HTML页面。首先得确定问题方向,因为样式文件是外链的,所以我在样式文件里给body来个背景颜色,结果发现除IE6以外其它浏览器背景都能正常变色。于是我在html页面直接加上body样式,这下IE6才生效。
html页面加写样式对于IE6有效,CSS文件写样式对于IE6无效只能说明IE6下无法加载样式文件。
一开始怀疑是书写格式有问题,把一行行HTML代码规范后发现还是在IE6下无法加载样式文件。
问题开始陷入僵局中……
突然想到编码问题,使用工具看了一下,原来HTML页面使用UTF8
编码,样式文件使用GBK编码,使用工具把样式文件转换成UTF8
编码后问题解决。
- 后面我自己写Demo测试没有重现,可能这个只是个别现象
- HTML页面编码最好与样式文件编码一致
- 样式文件内的@charset 声明有时候对IE6无效
- 有关文档说编码不一致IE6下也能加载,我自己写测试的时候也没有问题,也有的说是因为编码不同又有中文导致