私は古いWebサイトを作り直しており、Javascript/jQueryを可能な限り控えめにすることに重点を置いています。私はプロジェクトの一部について助言を求めています.UJは、ブラウザでJavascriptをオフにすると、すべてのサイトコンテンツをユーザーが利用できることを要求しています。私のサイトの1つの部分には大きなアイテムのリストがあります。リストの各項目には独自の説明があり、CSSのdisplay:noneを使用してデフォルトで非表示にします。アイテムをクリックすると、jQuery .toggle():を使用して説明の表示を切り替えます.Javascriptを使用できない人は、何の理由でも表示されません。説明を隠すためにCSSではなくJavascript/jQueryを使用すると、ページが読み込まれたときにそれらがすべて一時的に表示されるので、避けたいものです。だから最高の解決策は何ですか?控えめなJavascriptを実装する
答えて
は、基本的には、あなたはとても
<html class="no-js" lang="en">
のように、あなたのhtml
要素に「ノー-JS」クラスを挿入することができますし、JavaScriptはクライアント上で有効になっている場合、あなたはすぐにmodernizrを使用してそのクラス(または単純なコードスニペットを削除します
.no-js
と
.js
クラスの使用を避けることができ、このようによう
<head>
<script>
(function(d) {
d.className = d.className.replace(/(^|\b)no-js(\b|$)/, 'js');
}(document.documentElement));
</script>
...
</head>
あなたが最初のコードやスタイルになる「プログレッシブ・エンハンスメント」と「控えめなJavaScriptの」の観点で考える:
.yourlistitems {
display: block;
}
.js .yourlistitems {
display: none;
}
このアプローチは、あなたが本当に各ルールに.no-js
クラスを付加する必要はありませんH5BP
ノートでも使用されていますjavascriptなしで動作するページの場合は、機能を追加します(.js
クラスの前にスタイルの特殊性を追加します)
ありがとうございます - それは完璧に動作します。関数内の/(^ | \ b)と(\ b | $)/の正確な内容を教えてください。 –
正規表現は、別のクラスに属していない正確なクラス "no-js"を部分文字列(xxxno-jsまたはno-jsxxxxなど)として検索します。 – fcalderan
Modernizrで実装された方法のような方法を考えましたか?
CSSクラスは、異なるCSSセレクタを一致させるスクリプトによってHTMLタグに追加されます。これは本当にため、潜在的な非同期操作でできますが、あなたは、プレーンJS、ないのjQueryを使用してnone !important
に関連するすべての表示を切り替えるするあなたの<style> with display: (block|inline|whatever)
を付加<script>
を追加する可能性がある場合
<html>
<head>
<!--
Putting this script in the head adds the "js"
class to the html element before the page loads.
-->
<script type="text/javascript" language="javascript">
document.documentElement.className = "js";
</script>
<style type="text/css">
/*
Only apply the hidden style to elements within the HTML element
that has the js class
*/
.js .description {display:none;}
</style>
</head>
<body>
<span class="description">Example</span>
</body>
</html>
は言うことはできません。
JSの場合、CSSの表示設定はあらかじめオーバーライドされています。
- 1. protect_from_forgery&控えめなJavascriptの
- 2. 控えめなメソッド転送を実装する方法は?
- 3. なぜ控えめなJavaScriptですか?
- 4. 控えめなJavascriptを目障りのJavaScriptの例があるWikipediaのエントリ控えめなJavaScriptでは
- 5. 控えめなJavaScript - 安全な属性?
- 6. Django、控えめなJavaScriptとクロスサイトスクリプティング
- 7. 控えめなJavaScriptでHTML5 File APIを使用するには?
- 8. ajaxリクエストを控えめなjavascriptに変換するには?
- 9. 控えめなjQuery htmlテンプレート
- 10. jQueryの控えめなカスタムエラーメッセージ
- 11. jQueryによる控えめなjavascriptを使用したAjax.ActionLink
- 12. jsfコンポーネントを使用した控えめなjavascript ... how?
- 13. Rails 3.1 Flotを使用した控えめなJavascript
- 14. Javascript - クロージャーを控えめに使用する?
- 15. ASP.Net MVC 3 ViewModel、控えめなJavaScriptとカスタム検証
- 16. 控えめなファストフィルタドロップダウン<optgroup> implementaion
- 17. MVC3控えめな検証は、Ajaxコール
- 18. 静かで控えめなCMakeビルドツールモード
- 19. ASP.NET MVC4控えめな検証ローカライズ
- 20. jQuery Mobileの控えめなモード
- 21. MVC控えめな範囲の検証
- 22. 控えめなJavascriptをアクティブでないタブを検証していない
- 23. 控えめな方法でデータを保存する
- 24. 控えめな "友人にメールする"フォーム
- 25. wit.aiで「私は控えめな」物語を作る方法
- 26. 新しいjQueryのQティップページにASP.NET MVC控えめなjavascriptの検証
- 27. 確実なMVC演算子:GreaterThanは私が..控えめを追加した時
- 28. モデルを受け入れない控えめなクライアント検証
- 29. タイムアウト可能な控えめなアラート通知
- 30. ASP.Netコア:控えめな検証が動作しない
リストのコードを少し見せてください... – Teemu