2015-04-24 71 views
4

我需要一些帮助来诊断Chrome中的CSS问题。我甚至不知道如何诊断这个问题。我只是想知道下一步应该是什么。替代样式表不适用于Chrome

就解决方案而言,我已经检查了this question,但它不是很清楚。我也试过this solution(禁用所有样式,然后启用一个),但它不工作。我不认为this question适用,因为我们不从外部域拉,所以它不是一个跨域问题。

问题:

Chrome似乎忽略了我们的替代样式表定义。在我们的应用程序中,我们使用备用样式表和一个Javascript例程来更改背景颜色。此代码正在工作,并且在Firefox和IE中仍为,但在某些时候它停止在Chrome中工作。样式表被定义如下:

<link type="text/css" rel="stylesheet" title="white" property="stylesheet" href="/myapp/css/layer.css" /> 
    <link type="text/css" rel="alternate stylesheet" title="silver" property="stylesheet" href="/myapp/css/medium.css" /> 
    <link type="text/css" rel="alternate stylesheet" title="grey" property="stylesheet" href="/myapp/css/dark.css" /> 
    <link type="text/css" rel="alternate stylesheet" title="beige" property="stylesheet" href="/myapp/css/beige.css" /> 
    <link type="text/css" rel="alternate stylesheet" title="green" property="stylesheet" href="/myapp/css/green.css" /> 

原体定义这里:

body { 
    font-family: Arial, Helvetica, sans-serif; 
    font-size: 12px; 
    color: #282828; 
    height: 100%; 
    background: #fff url(../images/header-bg.jpg) center top no-repeat; 
    min-width: 1024px; 
} 

应该与被覆盖(例如)此,在交替的样式表中的一个:

body { 
    background: url("../images/header-bg-dark.jpg") no-repeat center top #919194; 
} 

但这不适用于Chrome。我尝试了以下内容:通过JS代码究其根源,并验证

1)的CSS片得到启用/禁用正确:

 if (document.styleSheets.item(i).href.indexOf("medium") > -1) { 
      document.styleSheets.item(i).disabled = false; 
     } else if (document.styleSheets.item(i).href.indexOf("dark") > -1 
       || document.styleSheets.item(i).href.indexOf("beige") > -1 
       || document.styleSheets.item(i).href.indexOf("green") > -1) { 
      document.styleSheets.item(i).disabled = true; 
     } 

2)看着计算的风格,只有基地风格正在显示 - 这就像Chrome忽略了其他风格。

3)尝试从rel="alternate stylesheet"部分定义中删除alternate

4)试图从基本定义(layer.css)中删除title

任何人有任何其他想法?如果我找到解决方案,我会发布它。

回答

4

答案原来是删除“标题”属性,并删除样式表定义中的“备用”部分。所以样式现在链接如下:

<link type="text/css" rel="stylesheet" property="stylesheet" href="<c:url value="/css/medium.css"/>" /> 
<link type="text/css" rel="stylesheet" property="stylesheet" href="<c:url value="/css/dark.css"/>" /> 
<link type="text/css" rel="stylesheet" property="stylesheet" href="<c:url value="/css/beige.css"/>" /> 
<link type="text/css" rel="stylesheet" property="stylesheet" href="<c:url value="/css/green.css"/>" /> 

不知道为什么原始的定义:没有工作,但在新的工作,可以在打开及关闭与JS,这是我们所需要的。

+0

这不幸也阻止了Firefox允许用户在View-> Page Style下选择他们想要应用的样式表。但我确认这是必要的,以获得铬通过JavaScript切换样式表。 – Gsxr1k

相关问题