我需要一些幫助來診斷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
。
任何人有任何其他想法?如果我找到解決方案,我會發布它。
這不幸也阻止了Firefox允許用戶在View-> Page Style下選擇他們想要應用的樣式表。但我確認這是必要的,以獲得鉻通過JavaScript切換樣式表。 – Gsxr1k