2010-11-23 14 views
1

divのリストがあり、それぞれが 'createdDate'属性を持ち、各divのcreatedDateを評価します。 別の属性 'isNew'を追加します.7日未満の場合はtrue、それ以外の場合はfalseです。CSSはいつ解決/評価されますか?

CSSがあります

div[isNew=true] div.title{ background:red } 

が7日未満であるときに、背景の赤を設定しようとします。

firebugとDevツールを使用すると、マッチするルールで背景が赤色に設定されます。

ブラウザーではタイトル欄が赤で表示されません。

CSSの評価を再描画するように微調整する方法はありますか?またはより良い方法?

+2

より良い方法ですか?なぜ特定のルールごとにCSSクラスを作成せず、サーバー側の選択言語を使用してそれぞれのクラスをdivに追加してください。 –

答えて

1

を形成

.red { background: red; } // to be safe and sure, you can make it important 

をおそらくあなたはそのスタイルのどこかで再定義します。

注:コードには属性 'isNew'が必要です:もしあなたがhtmlコードを管理しているなら、 'data-isNew'

Zlatevが提案するように、それは別の解決策であり、最も古いブラウザはCSS属性セレクタを認識しないため、クロスブラウジングが保証されます。私は、.redクラスを使用しないことを推奨します。なぜなら、要素スタイルにあまりにも拘束されてしまうからです(色を変更するとどうなるでしょうか?)。.newtitle

+0

クールなツール(jsfiddle)は一度も見たことがありません。私はサンプルを微調整しました。ちょっと振る舞いが私がやろうとしていたものに従います。今すぐ実行するとタイトルが赤くならない。しかし、検査はその赤を言う! – Adrian

+0

http://jsfiddle.net/Gh7Ud/2/私の変更へのリンク – Adrian

+0

Adrianあなたのコードは期待通りに動作します(私はFF3.6.12を使用しています)が、JavaScriptの行だけを使用して動作します。タイトルは指定したとおり、背景が赤色で黒色です。 –

0

ただ、新しいルールを作成:私はマークアップと、残りのCSSルールをチェックすることをお勧め予想通りこのスニペットのでhttp://jsfiddle.net/fcalderan/Gh7Ud/作品を.addClass()ことにより、必要なときにjQueryを経由して、それを適用するか、バックエンド

+0

ええ、代わりにこれを行うように変換しています。私はCSSとコードを別々に保つつもりだった – Adrian

+0

'red'をクラス名として使用しない以外は、青色に変更したいときはどうなりますか? – roryf

関連する問題