CSSをフォーマットするための認識された方法論がいくつかあります。最終的には、最も快適に書くことができるかどうかはあなた次第ですが、これらは、より大規模で複雑なプロジェクトのCSSの管理に役立ちます。それは重要ではありませんが、私はBEMとSMACSSを組み合わせて使用する傾向があります。
BEMは、フロントエンドコードを読みやすく、理解しやすく、操作しやすく、スケーリングしやすく、堅牢で明示的で、より厳密にするための、非常に便利で強力でシンプルな命名規則です。
ブロック
次のような、それ自体で意味のあるスタンドアロンエンティティ。
header, container, menu, checkbox, input
素子
ブロックの一部であり、スタンドアロンの意味はありません。それらは意味的にそのブロックに結び付けられています:
menu item, list item, checkbox caption, header title
修飾子
ブロックまたは要素のフラグ。それらを使用して、外観や動作を変更します。
disabled, highlighted, checked, fixed, size big, color yellow
OOCSSの目的は、コードの再利用を促進し、最終的には、追加と保守が容易な、より高速で効率的なスタイルシートを促進することです。
OOCSSは、次の2つの主要な原則に基づいています。
- 皮膚からの構造の分離
これは、繰り返しの視覚的特徴(背景や境界線のスタイルなど)を個別の「スキン」として定義することを意味します。これをさまざまなオブジェクトと組み合わせて、多くのコードなしで大量の視覚的多様性を実現できます。モジュールオブジェクトとそのスキンを参照してください。
- コンテナとコンテンツの分離
基本的に、これは「場所に依存するスタイルをほとんど使用しない」ことを意味します。オブジェクトは、どこに置いても同じように見えるはずです。したがって、.myObject h2 {...}を使用して特定のスタイルを設定する代わりに、。のように、問題を説明するクラスを作成して適用します。これにより、次のことが保証されます。(1)クラス化されていないすべてのが同じように見える。(2)カテゴリクラス(ミックスインと呼ばれる)を持つすべての要素は同じように見えます。3)実際に.myObject h2を通常のように見せたい場合は、オーバーライドスタイルを作成する必要はありません。
SMACSSは、設計プロセスを調査する方法であり、これらの厳格なフレームワークを柔軟な思考プロセスに適合させる方法です。これは、CSSを使用する際のサイト開発への一貫したアプローチを文書化する試みです。
SMACSSの中核となるのは、分類です。CSSルールを分類することで、パターンがわかり始め、これらの各パターンに関するより良いプラクティスを定義できます。
カテゴリには5つのタイプがあります。
ベース
リセットおよびデフォルトの要素スタイルが含まれます。また、特定の状況下でドキュメントの後半で上書きできるボタンやグリッドなどのコントロールの基本スタイルを持つこともできます。
レイアウトに
は、すべてのナビゲーション、ブレッドクラム、サイトマップなどが含まれます。
モジュールには
、連絡先フォームスタイル、ホームページタイル、製品リストなどの領域固有のスタイルが含まれています。
国は
、このようななどなどisSelected、のisActive、hasError、wasSuccessfulような状態クラスが含まれています
テーマテーマに
関連するすべてのスタイルが含まれます。
ここで詳しく説明するには多すぎますが、これらの他のものも見てください。