2013-09-27 122 views
0

我已經創建了一個CSS文件(style1.css),我在<head>下鏈接。以下生成的HTML是使用模板製作的,所以基本上我不知道爲什麼樣式表嵌套在<noscript>標籤內(如果有人可以向我解釋它爲什麼會被理解)。不明白爲什麼我的CSS不起作用

<head>  
    <noscript> 
     <link rel="stylesheet" href="css/style1.css" /> 
    </noscript> 
</head> 

這裏是已經困擾我好幾天的一些問題:

  1. 當我編輯的樣式表中,更改不會反映運行我的代碼。
  2. 當我註釋掉這個鏈接時,不知何故我的網站指的是同一個CSS文件 - 我不知道這是從哪裏引用的。這是我鏈接CSS的唯一地方,但它似乎仍然從我無法弄清楚的地方繼承它。
  3. 我試過這個沒有<noscript>。在這種情況下,當我運行代碼時會反映更改,但是再次進行編輯時,更改不會反映出來。瘋狂的東西是當我再次將它包含在<noscript>之下時,編輯會被反映出來,但是我在第一次嘗試中所做的更改就會丟失。

我無法理解這種奇怪的行爲,但我懷疑這與HTML中的<noscript>標記有關。我使用JavaScript在我的網站上運行動畫,並在測試時在瀏覽器中啓用了JavaScript。

+6

您使用'noscript'標籤。你有JS啓用。 'noscript'標籤內的所有內容都不會運行 – Niels

+1

這些是如果用戶沒有javascript可以加載的樣式 – user1477388

+3

優秀的問題! – PeeHaa

回答

0

拿掉noscript標籤,它僅用於在javascript未啓用時執行代碼(https://developer.mozilla.org/en-US/docs/Web/HTML/Element/noscript)。

至於沒有反映的變化,你的瀏覽器可能已經緩存了CSS文件,爲了解決這個問題,你可以使用強制刷新,這可以通過按下控制鍵和F5鍵來完成(CTRL + F5)在Windows上的大多數瀏覽器中。

模板也可能有自己加載的CSS文件,請使用您的瀏覽器開發工具查看哪些資源正在加載頁面。

+0

即使作出強制刷新之後,更改不會反映 –

1

我會避免使用<noscript>這種標籤。有關於它的討論。看看this article

更好的解決方案是特徵檢測。

在你style1.css,你定義一個類名後綴.nojsbody.no-jsh1.no-js

然後簡單地從通過JavaScript/jQuery的DOM元素刪除該班規。

$('.no-js').removeClass('no-js'); 

這樣,當沒有JavaScript的,上面的代碼將無法執行,中定義的規則你style1.css生效。

更好的是,使用Modernizr這是一個功能齊全的圖書館,是我所有網站的必備工具。

+0

感謝會嘗試,但仍然問題仍然 –

+0

那麼,什麼是您的首選解決方案? – Blaise

+0

直到現在,我仍然有任何解決方案,暫時擱置,因爲在不同的項目上工作。一旦排序,肯定會發布解決方案。 –

相關問題