2013-03-08 57 views
0

我的主頁上有一個精選滑塊,如果JavaScript被禁用,我已經操縱完全隱藏。我有一個腳本,然後顯示功能滑塊,如果JavaScript已啓用。如果啓用javascript,則顯示div。必須有!重要

document.write('<style type="text/css">#JQuerySlider1Container{ display: block !important;}</style>'); 

顯然,根據W3C,代碼無效。 (雖然它的工作,所以這是一個總的無賴)。

我發現了一個我喜歡的代碼片段,但我必須要有!重要的是爲了顯示滑塊。

document.getElementById('JQuerySlider1Container').style.display='block !important'; 

但它不適用!重要。 有沒有人有這個問題的簡單解決方案?

+0

你爲什麼會使用'document.write'來寫一些常量?只需直接寫入樣式元素即可。這是有效的。 – 2013-03-08 11:25:15

+0

!重要的是不是嵌入式樣式中的有效語法。內聯風格總是「更重要」的其他內容 – 2013-03-08 11:25:35

+2

@chumkiu:我曾經這麼認爲,但事實並非如此。通過樣式應用的足夠具體的'!important'規則可以優先於內聯樣式:[Example](http://jsbin.com/uwifas/1),[Source](http://jsbin.com/uwifas/) 1/edit)''important' * does *工作在內聯樣式中:[Example](http://jsbin.com/uwifas/3),[Source](http://jsbin.com/uwifas/3/編輯) – 2013-03-08 11:26:20

回答

1

它不是使用JS添加CSS的好習慣。你應該保持HTML,JS和CSS完全分離。

使用JS是默認隱藏你想使用CSS來隱藏物體,如顯示/隱藏事物的方式:

#JQuerySlider1Container {display:none;} 

的在你的JS,一類補充人體,使用類似:

$(function() { 
    $('body').addClass('has-js'); 
}); 

然後,你可以寫具體的CSS規則,知道你有支持JS,例如:

.has-js #JQuerySlider1Container {display:block;} 
+1

這是要走的路。根據網站的複雜程度,您可能會從使用[Modernizr](http://modernizr.com/)中受益,該程序將爲您處理此問題,並提供其他有用的'類'來幫助根據瀏覽器的功能。 – CherryFlavourPez 2013-03-08 11:40:35

+0

你是一個救生員。太感謝了。 – user2108555 2013-03-08 11:53:52

相關問題