2009-10-30 8 views
5

ウェブページ上に、JavaScriptを使ってかなり隠れていると思われる要素がある場合、これは最初は目に見えないように設定する最も適切な方法でしょうか? class="..."を使用して要素の可視性を切り替えることを期待しています:class = "..."またはstyle = "..."で始める必要がありますか?

<div class="hidden">...</div> 

または

<div style="display: none;">...</div> 

は、ほとんどの場合style="..."に好適であるが、私はそれがこのケースでベストフィットだ確信していません。意味的には、私の要素は隠された要素ではなく、が最初に読み込まれたときにを非表示にするものです。私はjQueryのショー()および非表示()メソッドを使用しているとして、それはそれは多くの場合、この状態になります意味:

<div class="hidden" style="display: block;">...</div> 

...私にはこれがはっきりナンセンスです。

一方、インラインでstyle="display: none;"を使用すると、何とかハッピーでハードコードされているように感じます。

どちらの方法も完璧に動作し、ユーザーは決して賢明ではありませんが、どのパターンがデザインの原則に最も違反していることを知っていますか?

+0

JS fwを使用します。プロトタイプdiv.hide(); div.show(); – erenon

+0

Mmm ... div.hide()を使用することもできますが、ページが読み込まれている間は表示されます。 – teedyay

+0

このjQueryコードをdisplay:noneでdivを使用します(必要に応じてインラインでコーディングすることができます)。divを切り替えることができます:var flip = 0; $( "button")をクリックしてください。 – tahdhaze09

答えて

5

initially-hiddenのスタイルを呼び出します。情報を正確に伝え、jQueryを使用してそのスタイルをクエリする必要がある場合は意味があります。

+0

これは美しいです。 – teedyay

4

表示を ""から "なし"に切り替えて切り替えたい場合は、スタイルを使用する必要があります。クラスを "hidden"から ""に変更して切り替えたい場合は、クラスを使用する必要があります。言い換えれば、一貫している。

+1

これを行うためにJavaScriptフレームワークを使用する予定がある場合は、おそらくその規約を使用してください。たとえば、Prototypeはstyle = "display:none;"を使用します。メソッドを呼び出すと、後でElement.show()とElement.hide()を呼び出して変更します。 – Jason

0

私は全体のクラスを持っているだけで、何かの最初の可視性を呼び出すことに同意しますが、何が起こっているのかを簡単に把握することができます。特に、以前に提案されたように、「最初に隠された」などの記述的な名前を付けた場合、

私は特定のデザインプリンシパルを呼び出すことはできませんが、私が示唆していることは、そのメリットがあると思います。これは、再利用できない直接スタイルを適用するか、jQueryを使用してhide()を呼び出すよりも、何が起こっているのかがより明らかです。

+0

彼はクラスをJSのターゲットとして使用しています。それは必要です。あなたはスタイルシートに含める必要さえありません。実際、クラスはJS/jQueryのためのものなので、スタイルシートをまったく持ってはいけません。 var flip = 0; $( "button")をクリックします(function(){ $( "div")。toggle(flip ++%2 == 0); }); display:どれも問題はなく、トグルに対して正確に動作します。ボタンをクリックすると、それが再び表示され、クリックすると消えます。質問者がそれを働かせる方法とまったく同じです。 divをオン/オフします。 – tahdhaze09

+0

私はそれがaskerが望むように動作することに同意するが、askerは異なる解決策を提示した。質問は「私はこれをどうすればよいか」ではなく、「それはより良いもの」だった。 –

+0

私はクラスを使用して、ページが最初に読み込まれたときに要素の可視性を定義しています。 CSSでは、.hidden(または最初に隠された)は{display:none; }。私はjQueryセレクタとしてクラスを使用しません.jQueryはおそらくidまたは他のいくつかのルールで個々のdivを選択します。 – teedyay

関連する問題