JavaScriptはJavaScriptを有効にしている場合にのみ機能します。JavaScriptを使用していても、JavaScriptが有効な場合のみ動作します。言われたこと
、あなたはそれがHTML5 Boilerplateで行われているかを確認することができます<html>
タグに適用no-js
クラスを使用して
<html class="no-js" lang="en">
... the rest of the page
</html>
。あなたはCSSとHTMLで使用することができますどちらも、クラスが後でJavaScriptを使用して除去されるとjs
クラスが追加されます。
<p class="js">This is displayed if JavaScript is enabled</p>
<p class="no-js">This is displayed if JavaScript is disabled</p>
またはCSSで:
.no-js #someWidget { display: none; }
.js #someFallback { display: none; }
あなたがModernizrを使用している場合それはすでにあなたのためにこれらのクラスを変更しますが、あなたは、あなたがしなければならないすべてはのようなものをされていない場合でも:
document.documentElement.className =
document.documentElement.className.replace(/\bno-js\b/,'js');
これは、シンプルかつエレガントなソリューションとすべてのyですあなたのスタイルとマークアップにCSSクラスがあるのを心配する必要があります。
出典
2011-03-10 10:23:48
rsp
domが完全に読み込まれる前に、Akarunsソリューションでわずかなちらつきが発生する可能性があるため、最も効果的です。 – ullmark
はい、それはあなたが持っている "隠しブロック"の量に依存します! – Akarun
@Akarun:そうは思わない。 'body'にクラスを追加することで、構造セレクタや(もし他のすべてが失敗した場合)隠すコンテンツにクラスを追加することで、セレクタで必要なものだけを簡単に隠すことができます(例のように)。 –