动态添加css文件到头(在IE中优先级相反)

时间:2013-09-23 09:53:49

标签: javascript css internet-explorer

我正在将带有javascript的.css文件添加到头部并按顺序排列最高优先级,优先排序最低优先级。

像:

base.css
theme.css
responsive.css

对于我尝试过与IE分开的每个浏览器(我已经测试过IE8,9和10),这可以正常工作但是如果我颠倒顺序:

responsive.css
theme.css
base.css

它适用于IE(8,9,10)但在每个现代浏览器中都不起作用。

是否有IE优先级错误?如果我静态添加文件没有问题,所以它接缝是一个JavaScript问题,但仅适用于IE。

任何人都知道这个问题甚至解决方案吗?

3 个答案:

答案 0 :(得分:0)

一种解决方案是首先使用javascript检查使用了哪种浏览器。

BrowserDetect.browser

然后使用if-else语句..

if(IE){
  responsive.css
  theme.css
  base.css
}
else{
  base.css
  theme.css
  responsive.css
}

答案 1 :(得分:0)

这是因为IE的旧版本不理解在响应式设计中使用的媒体查询,我想在您的responsive.css中有@media screen and (min-width: 960px)之类的内容。

通常条件注释用于检测当前浏览器是否为IE(及其版本)并加载css文件。

我个人喜欢移动第一哲学,在进行响应式设计时,有一个示例教程:http://gomakethings.com/mobile-first-and-internet-explorer/

这称为渐进式增强。首先为最简单的平台执行css,然后为新浏览器添加内容。

如果你想要选项,还有另一种做法叫做优雅降级,这是相反的,拥有全功能的CSS并忽略/删除旧浏览器的这些功能。

如果您真的想做干净且反应灵敏的设计,您应该稍微了解这两种做法,以便更好地理解它们

答案 2 :(得分:0)

某处肯定存在其他问题,因为IE和其他浏览器在级联样式表方面没有区别。请创建一个JSfiddle。