CSS文件添加 @charset "utf-8"; 可能会引起样式在IE6下失效
2013-09-29 12:30
447 查看
今天在本地调试好页面在IE6,7,8,及火狐的效果后,上传服务器,上传以后,发现页面在IE7,8,火狐下是正常的,在IE6下串位。
问题发生以后,我在本地又测试了一下IE6的效果,一切正常,可是服务器上的页面缺是不正常,起初怀疑是页面JS和<meta>标签不统一的原因造成的,待我统一了JS和<meta>标签后,问题依然出现。
于是我把服务器上的页面在IE6里另存为下载了下来,下载以后,我突然发现页面的CSS文件的中文注释语句都变成了乱码。这就是页面在IE6下不能正常显示的原因,因为页面的CSS文件由于注释语句变成乱码的原因无法正常读取。
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/30/a2183582622273d1009757ba79219e49.gif)
这里我发现了CSS文件与HTML文件的语言编码不统一的问题,HTML文件的语言编码是<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
而CSS文件的语言编码是@charset "utf-8";,这就造成了浏览器在读取CSS文件时,无法读取注释语句的问题。(注意:不是单指注释语句的问题,如果有中文等字符,也会如此。如:font-family: "宋体";)
我之前在网络上见过一个人说,“CSS文件只能设置成UTF-8,而不能设置成GB2312,如果设置成GB2312,会造成错误”,所以我才将CSS的语言设置为 @charset "utf-8";,但是如果这样写出来,而HTML又是GB2312的话,就会造成CSS读取不出来的问题。
所以解决办法是删除@charset "utf-8";这个声明语句,貌似删除以后,CSS的编码依然是UTF-8,但是页面读取会正常。看来,以后在编写CSS文档的时候,还是不添加@charset "utf-8";,这个声明语句比较安全!
问题发生以后,我在本地又测试了一下IE6的效果,一切正常,可是服务器上的页面缺是不正常,起初怀疑是页面JS和<meta>标签不统一的原因造成的,待我统一了JS和<meta>标签后,问题依然出现。
于是我把服务器上的页面在IE6里另存为下载了下来,下载以后,我突然发现页面的CSS文件的中文注释语句都变成了乱码。这就是页面在IE6下不能正常显示的原因,因为页面的CSS文件由于注释语句变成乱码的原因无法正常读取。
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/30/a2183582622273d1009757ba79219e49.gif)
这里我发现了CSS文件与HTML文件的语言编码不统一的问题,HTML文件的语言编码是<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
而CSS文件的语言编码是@charset "utf-8";,这就造成了浏览器在读取CSS文件时,无法读取注释语句的问题。(注意:不是单指注释语句的问题,如果有中文等字符,也会如此。如:font-family: "宋体";)
我之前在网络上见过一个人说,“CSS文件只能设置成UTF-8,而不能设置成GB2312,如果设置成GB2312,会造成错误”,所以我才将CSS的语言设置为 @charset "utf-8";,但是如果这样写出来,而HTML又是GB2312的话,就会造成CSS读取不出来的问题。
所以解决办法是删除@charset "utf-8";这个声明语句,貌似删除以后,CSS的编码依然是UTF-8,但是页面读取会正常。看来,以后在编写CSS文档的时候,还是不添加@charset "utf-8";,这个声明语句比较安全!
相关文章推荐
- CSS文件添加 @charset "utf-8"; 可能会引起样式在IE6下失效
- CSS文件添加 @charset "utf-8"; 可能会引起样式在IE6下失效
- CSS文件添加“@charset "utf-8";”可能会引起样式在IE6下失效
- css文件中第一行@charset "utf-8";的作用
- cSS文件中第一行@charset "utf-8";的作用
- 谷歌浏览器不支持css文件使用@charset "utf-8";
- CSS文件开头到底声明@charset "utf-8"
- CSS文件中第一行@charset "utf-8";的作用
- @import url("layout.css"); css 引入 css ------@charset "utf-8";
- 关于response.setContentType("text/html; charset=UTF-8");乱码问题
- jsp中pageEncoding、charset=UTF -8 jsp中pageEncoding、charset=UTF -8"
- <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>意义
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />解释
- jsp中pageEncoding、charset=UTF -8"、(request/response).setCharacterEncoding("UTF-8")详
- 【转】jsp中pageEncoding、charset=UTF -8"、(request/response).setCharacterEncoding("UTF-8")
- header("Content-Type:text/html;charset=utf-8");
- 【HTML】明明加了<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />却还是乱码的可能原因
- Response.Charset="utf-8"与Response.Charset="gb2312"
- PHP文件插入header("Content-type: text/html; charset=utf-8"); 报错
- header("Content-type:text/html;charset=utf-8")含义