0

新しい WordPress 2.7 のコメント ループを使用すると、CSS に .odd と .even を追加するだけで交互のスタイルを取得できることがわかりました。

.odd { background: #ccc; color: #000; }
.even { background: #bbb; color: #000; }

ただし、ユーザーがオプション パネルから選択できる、明るい背景と暗い背景の 2 つの異なる背景があります。したがって、奇数クラスと偶数クラスの 2 つの異なるバージョンが必要なので、それぞれに異なる色を使用できます。上記の背景色は明るい背景に対しては見栄えがよく、暗い背景に対してはあまり良くないためです。

しかし、2.7 コメント ループでは、奇数クラスと偶数クラスは実際にはコード内にありません。もしそうなら、私は次のようなことをしたでしょう:

$background = get_option('mytheme_background');
if ($background== "option1") { echo '<div class="odd-dark">'; } 
if ($background== "option1") { echo '<div class="even-dark">'; }
if ($background== "option2") { echo '<div class="odd-light">'; } 
if ($background== "option2") { echo '<div class="even-light">'; }

コードに .odd と .even が実際には存在しない場合、CSS で .odd と .even の 2 つの異なるバージョンを使用するにはどうすればよいでしょうか?

4

1 に答える 1

0

遅れた応答ですが、他の誰かがそれに出くわしました...

この問題のはるかに簡単な解決策は、逆の見方をすることです。必要なすべての html 要素にテーマ オプション名を追加する代わりに、含まれている要素に 1 つのクラス名を追加するだけです。

たとえば、指定された例では、ドキュメント内のクラスのリストに「ダーク」bodyを追加できます。その場合、「ダーク テーマ」に関連するすべてのスタイル属性は次のように宣言されます。

body.dark div.odd  { ... }
body.dark div.even { ... }

このようにして:

  • マークアップの肥大化を減らす
  • CSS ロジックを読みやすくする
  • 命名規則に一貫性を持たせる
于 2013-03-16T17:36:10.703 に答える