class
属性のW3C仕様は
作成者がclass属性で使用できるトークンに追加の制限はありませんが、作成者は、コンテンツの目的の表示を説明する値ではなく、コンテンツの性質を説明する値を使用することをお勧めします。
私は多くの異なるページがある大規模なウェブサイトで働いています。実質的にすべてのページで共有されるデフォルトのスタイルシートがあります。次のようなCSSルールセットがあると便利です。
.center { text-align: center; }
.red { color: red; }
ただし、これらのクラスは意味的にコンテンツを記述しません。
テキストを中央揃えにしたり、赤で色付けしたりする必要があるケースが数多くあり、これらの特定のインスタンスのそれぞれが互いに何の関係もない場合があることを理解できると思います。たとえば、クラスwarning
は、ある場所では役立つ場合がありますが、別の場所ではaside
である場合があります。私は必ずしもallの警告を赤にしたくありません。
これは超技術的な質問だと思いますが、超技術的な答えが欲しいです。セマンティクスを表現しない一般的なスタイルルールとHTML仕様を調整する正しい方法はありますか?これはshudderインラインスタイルの場合ですか?
私は多くの異なるページがある大規模なウェブサイトで働いています。実質的にすべてのページで共有されるデフォルトのスタイルシートがあります。次のようなCSSルールセットがあると便利です。
.center { text-align: center; }
.red { color: red; }
これは一般的に行われていますが、私の意見では非常に悪い習慣です。すべてのスタイルをインラインで配置するよりも、ほんの少しだけ優れています。あなたが得る唯一の利点は、あなたが赤の異なる色合いを選ぶことができるということです。それはCSSの考え方とは正反対なので、それがそれほど一般的な慣行でなければ、thedailywtf.comの候補になるでしょう。
の代わりに
<div class="warning">Do not cross the streams!</div>
あなたが持っている
<div class="warning red center">...</div>
および他の場所:
<span class="red">...</span>
<div class="center">Some heading or caption or whatever</div>
<div class="warning bold black">A different kind of warning?</div>
クライアントがすべての警告を、右に浮いた黒い境界線のある黄色で塗りつぶされたボックス内の黒いテキストに変更したい場合はどうしますか?代わりに10分かかるはずのタスクは10時間かかります。
確かに、すべてのコンテンツにセマンティッククラス名を割り当てるのは面倒です今が、そうすることで、将来のサイトの外観を非常に簡単に調整できます。 Webサイトが大きいほど、これを適切に行うことが重要になります。ワードプロセッシングアプリケーションに精通している場合は、段落スタイルが使用されていない50章の本のサブセクションの見出しを調整することを検討してください。
一部の「警告」を赤にし、他の「警告」を赤以外にしたい場合は、2つの別々のクラスが必要です。 「警告」と「深刻な警告」。
私はお勧めします超越CSS:Webデザインのファインアート Andy Clarke、Molly E. Holzschlag、Aaron Gustafson、MarkBoultonによる。これは美しい本であり、セマンティックコンテンツをプレゼンテーションから分離する方法と理由を説明するのに最適です。
まず第一に、これは良い質問です。それはhyper技術的であり、それは非常に理にかなっているとは思いません。
encouraged
はここでのキーワードです。
あなたがしていることは非常に一般的な習慣であり、CSSを使用してこの手法なしにこの種のスタイリングを行うことは非常に困難です。 CSSは要素がどのように見えるかを記述するためにあります。それは私たちのスタイル言語であり、ID、クラス名、およびタグ名に効果的にフックするだけです(他のすべてのセレクターは最後にチェックしたものよりかなり遅くなります)。これらの3つのクラスのうち、最も理にかなっています。これは、IDが一意であり、タグ名が要素の表示方法ではなく、要素が何であるかをさらに説明しているためです。
私はW3Cの主張を理解しています。プログラミングでは、ほとんどの場合、クラスはタイプとオブジェクトが何であるか、そしてそれがどのように動作するかを記述し、どのように提示されるべきかを記述しません。
スタイルをインライン化すると、次の問題も発生します。
これがあなたがすべきだと私が思うことです:
SASSまたはLESSを試してみてください。これらがうまく機能する場合は、時間を大幅に節約できます。それがうまくいかない場合は、ミックスインパターンの形式としてクラスを使用し続け、要素間でプロパティを共有します。
オブジェクトが実際にどのように表示されるかではなく、オブジェクトの表示方法を説明する名前「class」が混乱していることに同意します。今日、クラスはCSSのプレゼンテーションロジックとJavaScriptのコードロジックの両方で2倍になっています。
幸運を!
モバイルバージョンなど、複数のスタイルを設計する場合は、よりセマンティックなクラス名を使用すると非常に便利です。それらは多くのコードを共有するかもしれませんが、モバイル版では「center」を中央に配置すべきではない場合があります。または、何かが別の背景に置かれているため、赤ではなく栗色を使用する必要があります。 'center {text-align:right;}'のようなスタイル変更は混乱を招きます。
だから私は意味的な意味を奨励し、それらをスタイルします。繰り返し発生するスタイルの冗長なコーディングを回避するには(たとえば、「font-weight:bold; text-align:center; color:red;」など、いくつかの警告やその他の赤いテキストのSass以下が非常に便利です。
ただし、複数のスタイルがなく、レイアウトが変更されない限り、すべてのクラスの名前を変更するのに年齢を費やすことはありません。結局のところ、それはあなた自身の便宜のためだけです(そして、もしあれば、あなたの後の開発者です。)役割属性を使用するものがあるとしても、ブラウザはセマンティカルな値で何もしません。
インラインスタイルはあまり使用しませんが、便利な場合があります。たとえば、スタイリングがツールから発生して生成された場合です。フープを飛び越えて生成されたコードをクラスに書き直してスタイルを設定するだけでは生産的ではありません。 (特にツールの設定を変更する場合は、簡単に変更できます。)