网站在ie浏览器中加载不了css的n种可能

今天在做网站时,发现ie浏览器死活就是加载不了css,火狐、360等浏览器都是正常的,于是死找活找解决办法,最后解决了,我的终极办法不一定可以解决你的问题,但可以逐一排查一下。

1、检查是否css路径错误

可以用360或火狐打开试试,网站正常打开,不是css路径错误。往下。

2、css文件中指定的编码与页面不统一

浏览器用页面编码解析css,自然会出错。我的IE更新到IE11时遇到了这个问题,html给的gb2312,css文件头给了的@charset"utf-8",css完全加不上。

例:<meta http-equiv="Content-Type" content="text/html; charset=gbk" />

<link href="join_us.css" type="text/css" rel="stylesheet" charset=“utf-8”>

外联css文件开头给了@charset "utf-8"

CSS文件中未指定@charset头声明,导致IE默认使用页面编码来解码CSS文件。

在这里解释一下,gb2312和gbk都是较早的国标码,主要用于编解码常用汉字。而utf-8更国际化一些,同时适用中文,基于英文的平台使用utf-8。GBK、GB2312等与UTF8之间都必须通过Unicode编码才能相互转换。

而我已经把所有css和html都统一成utf-8,不行,往下。

3、css文件不是minetype 类型

IE不支持引入外部的Css文件,并且提示MINE Type类型不匹配。.css文件不是minetype 类型,原因可能是这个.css文件是你创建的其他类型(比如txt)文件然后改的后缀。

那就重建一个css文件,把代码copy过去。

或者下载FilesTypeMan 软件,直接修改文件后缀的minetype类型。

4、看一下HTML头部的DOCTYPE声明

<!DOCTYPE>声明不是 HTML 标签;它是指示 web 浏览器关于页面使用哪个 HTML 版本进行编写的指令。在 HTML 4.01 中,<!DOCTYPE> 声明引用 DTD,因为 HTML 4.01 基于 SGML。DTD 规定了标记语言的规则,这样浏览器才能正确地呈现内容。

HTML5 不基于 SGML,所以不需要引用 DTD。

<!DOCTYPE html> HTML5声明。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">这个是dw自动在网页文件页增加了dtd信息(可以删. 删除后,浏览器会使用的默认dtd.)

该 DTD 等同于 XHTML 1.0 Transitional,但允许框架集内容。 

另:

<meta http-equiv="X-UA-Compatible" content="IE=edge">

这段代码告诉IE浏览器,IE8/9及以后的版本都会以最高版本IE来渲染页面。

本地的外联css加不上,把页面头部的 <!DOCTYPE html>  把html去掉 就ok了。

实验了确实可以,但样式显示上出了问题。不行,往下。

5、如果使用@import,当css文件发生改动时,客户端IE6将不会刷新该css。

网站的css用了@import,但是尼玛连主css都没有加载进来。还是不行。

6、css因Mime类型不匹配而被忽略

你可以将网站传至服务器上,测试ie是否能访问,我这边一看,果然不行,应该就是这个问题。

本机解决方法:进入注册表编辑器,查看HKEY_CLASSES_ROOT\.css里面的Content Type 是否是text/css

如何进入注册表编辑器

通过快捷键"win"+"R",调用运行窗口

在运行窗口中输入regedit,点击确认,便可进入如图所示的页面效果


改完后,记重新启动电脑,得了,完美解决,收工。