4

私はメッセージボードを持っており、私のユーザーの 1 人が、ページ内のさまざまな要素のスタイルを設定するグリースモンキー スクリプトを作成しました。彼はそれで素晴らしい仕事をしましたが、彼の仕事をより簡単にするために、彼のスクリプトの最初のステップは、現在のページを解析し、ページ上のほぼすべての html 要素にいくつかの css クラスを追加することです。それらのほとんどは、ページのスタイル設定にはまったく使用されませんが、代わりに、実際に変更するページごとのいくつかの要素を簡単に照会できるようにするために使用されます。たとえば、class="thread_started_by_user_123 thread_with_456_posts thread_with_789_views thread_last_posted_in_by_user_12345"などなど

これは標準的な慣行ですか?提供されたページにもそれらを追加する場合、javascriptまたはサーバーで不要なcssクラスを多数追加することの欠点はありますか。

4

5 に答える 5

2

セマンティクスに関しては、はい、欠点があります。要素が実際に何であるかを説明しておらず、スタイリングの目的でのみ存在するクラスがある場合、再設計や再構築を決定した場合、これは将来的にあなたを傷つける可能性があります。

たとえば、悪い:

<div class="header red left-side">

良い:

<div class="header main current-event">
于 2009-07-30T21:11:53.640 に答える
2

要素に割り当てられたクラスに関連付けられたスタイルがない場合、ブラウザーはそれを無視すると思います。そのため、心配している場合でも、ページの処理時間が大幅に増加することはありません。

ただし、要素ごとに非常に多くのクラスがある場合は、貴重な帯域幅を使用しており、ページ全体をロードするのにかかる時間が増加していることに注意する必要があります。CSS を外部化してブラウザーがキャッシュできるようにすることで、この問題を回避できます。

本当に変更したい要素を照会するために jquery を使用していますか? 標準の JavaScript では困難または不可能と思われる要素を jquery セレクターを使用して選択する方が簡単であることが判明する可能性があり、これらの余分な不要なクラスをすべて回避できる可能性があります。

要するに、必要に応じて多くのクラスを使用しても問題はありません。それは本番環境ではまったく問題ありませんが、あなたの場合のようにそれらが必要ない場合は、より良い解決策が必要です。まで。

于 2009-07-30T21:22:15.773 に答える
2

これは、クラスを使用して任意のメタデータを要素に埋め込んでいるように見えますが、これは確かに class 属性が設計された目的ではありません。その効果がグリースモンキー スクリプトで開始および終了し、クライアントにローカライズされていることを考えると、無害なハックのように思えますが、サーバー側で複製することはお勧めできません。

残念ながら、HTML は無効な属性に固執する以外のメタデータに関して代替手段をあまり提供していないため、既存のタグ内の「クラス」属性に意味的な意味を追加するメカニズム、つまりmicroformatsがあります。microformats に関しては息をのむような流行語の誇大宣伝がたくさんありますが、全体として、それらはすべて xml にすることが問題外である分野のベスト プラクティスを中心に展開しています。

于 2009-07-30T21:26:49.320 に答える
2

データポイントとして、昨日 GMail の HTML を見てみました (ボタンがとてもいいです)。

次に例を示します。

class="goog-imageless-button goog-inline-block goog-imageless-button-collapse-left goog-imageless-button-collapse-right"
于 2009-07-30T22:35:15.470 に答える
1

クラスはCSSだけでなく、マークアップのセクションを分類するためのものです。その分類に基づいてスタイリングを適用することは、1つの使用法にすぎません。したがって、クラスが他の分類目的に役立つ場合、それは問題なく、完全に良い習慣です。

于 2009-07-30T21:12:17.027 に答える