多くのWebサイトでは、クラスに関連付けられているスタイルを説明する、、、、などのクラス名が使用されていますfloatleft
。これは理にかなっているように思われるので、新しいコンテンツを作成するときに、要素を簡単にラップして、希望どおりに動作させることができます。clearfloat
alignright
small
center
<div class="clearfloat">...</div>
私の質問は、このスタイルの命名クラスは、コンテンツをプレゼンテーションから分離するという考えに反するものではないかということです。要素class="floatleft"
を配置することは、プレゼンテーション情報をHTMLドキュメントに明確に配置することです。
添付されたスタイルを直接説明するこのようなクラス名は避けるべきですか?もしそうなら、どのような代替手段がありますか?
明確にするために、これはクラスに名前を付けるだけの問題ではありません。たとえば、意味的に正確なドキュメントは次のようになります。
<div class="foo">Some info about foo</div>
...
<div class="bar">Info about unrelated topic bar</div>
...
<div class="foobar">Another unrelated topic</div>
これらすべてのdivがフロートをクリアする必要があるとすると、cssは次のようになります。
div.foo, div.bar, div.foobar {
clear:both;
}
これらのクリアリング要素の数が増えると、これは醜くなり始めますが、単一の要素class="clearfloat"
は同じ目的を果たします。表示情報がHTMLに忍び寄ることを意味する場合でも、CSSでの繰り返しを避けるために、添付されたスタイルに基づいて要素をグループ化することをお勧めしますか?
更新:すべての回答をありがとう。一般的なコンセンサスは、これらのクラス名を避けてセマンティック名を優先するか、少なくともメンテナンスを妨げない限り、控えめに使用することです。重要なことは、レイアウトを変更してもマークアップを過度に変更する必要がないことだと思います(ただし、全体的なメンテナンスが容易になれば、小さな変更でも問題ないと言う人もいます)。CSSコードを小さく保つための他の方法を提案してくれた人々にも感謝します。