オブジェクト指向 CSSに関するNicole Sullivanの理論を少し読んでいました。簡単に言えば、基本的な考え方は、Web サイトのスタイルを設定するたびにゼロから始めるのではなく、既に作成されたいくつかの基本的なビルディング ブロックをクラスとして使用し、ニーズに合わせて拡張する方がおそらく優れているということです。(「拡張」には、より具体的な/オーバーライドするクラスを HTML に追加することが含まれます。これは、CSS クラスが相互にルールを継承することが不可能であるためです...できれば CSS4 で? :) OOCSS の原則は、必要がないという事実に触発されています。倍精度数の正弦を求める必要があるたびに、 Java Math クラスを書き直してください。コードはすでに (誰かによって) 書かれているので、それを使用してみませんか?
抽象的には素晴らしい提案だとは思いますが、適用可能な観点からそれを把握するのに苦労しています。[私の特定の質問については以下をお読みください。しかし、私は常に読み物を探していますので、少し立ち止まって、OOCSS リソースへのリンクを追加してコメントしてください。たとえば、利点や批判などです。]
ここに私のスタイルシートがあります:
.heading {...} /* for all heading styles */
.alpha {...} /* specific changes for h1 */
.beta {...} /* specific changes for h2 */
.gamma {...} /* specific changes for h3 */
.delta {...} /* specific changes for h4 */
.epsilon {...} /* specific changes for h5 */
.zeta {...} /* specific changes for h6 */
最初のセレクターはfont-family
、letter-spacing
、 などの共通のプロパティを持つ任意の見出し用です。次に、各「サブクラス」(実際にはサブクラスではありません) にはcolor
、font-style
、font-weight
、 などの特定の違いがあります。これらの「サブクラス」が後 .heading
に書かれているという事実スタイルシートの は、それらのいずれかに値が等しくない等しいプロパティが含まれている場合、のプロパティ.heading
は「サブクラス」のプロパティによってオーバーライドされることを示します。見出し 1 を取得するには、次のように記述します。
<h1 class="heading alpha">Contact Me</h1>
span
実際、 、 withなどの任意の要素のスタイルを設定できますclass="heading alpha"
が、これは実際にはh1
要素です。
【もちろん、言えるようになりたい】
.heading {...}
.alpha {
extends: .heading;
...
}
==============================
<h1 class="alpha">Contact</h1>
しかし、まだその段階には達していません。]
私の質問は、heading alpha
s が通常左揃えの場合、このインスタンスを中央に配置するにはどうすればよいですか? ニコルは、彼女のスタイルシートをインポートして彼女の.txtC {text-align:center;}
ルールを使用するべきだと言うので、私のコードは次のようになります。
<h1 class="heading alpha txtC">Contact Me</h1>
ただ、基本的にCSSのルールやクラスを1対1で対応させるのはちょっとやり過ぎかなと思います。この方法を使用した場合、独自のスタイルシートを作成する必要はありません。代わりに、大量の小さなクラス (「レゴ」) を HTML コードに追加するだけで、かさばって判読できなくなります。次のことを想像してください。
<p class="ital size-medium sans-ser txtJ med-height dark-blue">This is a
size 12pt, italic, Arial, left-right justified, 1.2em line height, dark
blue paragraph.</p>
1 つのクラスspecialParagraph
(paragraph-special
または何でも)を作成し、それらすべてのルールを CSS に割り当てる方が理にかなっているのではないでしょうか? レゴはいらない?私の場合、連絡先ページの上部に追加することはできませんか? .alpha {text-align: center;}
それともインライン?