zoukankan      html  css  js  c++  java
  • CSS文件添加 @charset "utf8"; 可能会引起样式在IE6下失效

    今天在本地调试好页面在IE6,7,8,及火狐的效果后,上传服务器,上传以后,发现页面在IE7,8,火狐下是正常的,在IE6下串位。
     
    问题发生以后,我在本地又测试了一下IE6的效果,一切正常,可是服务器上的页面缺是不正常,起初怀疑是页面JS和<meta>标签不统一的原因造成的,待我统一了JS和<meta>标签后,问题依然出现。
     
    于是我把服务器上的页面在IE6里另存为下载了下来,下载以后,我突然发现页面的CSS文件的中文注释语句都变成了乱码。这就是页面在IE6下不能正常显示的原因,因为页面的CSS文件由于注释语句变成乱码的原因无法正常读取。
     
     
    这里我发现了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";,这个声明语句比较安全!
  • 相关阅读:
    如何编写gitignore文件
    【转】three.js详解之入门篇
    【转】Nginx反向代理和负载均衡
    【转】使用nvm快速搭建 Node.js 开发环境
    【转】npm包管理器那些事
    【转】用systemJS+karma+Jasmine+babel环境去编写简单的ES6工程
    个人博客 总览
    【转】vscode: Visual Studio Code 常用快捷键
    【转】Cmder--Windows下命令行利器
    APScheduler+Flask
  • 原文地址:https://www.cnblogs.com/zlmlovem/p/2771033.html
Copyright © 2011-2022 走看看