2012-03-15 7 views
0
#messageContainer td 
    { 
     cursor: pointer; 
     border-bottom: 1px solid #2A2A2A; 
     padding-bottom: 3px; 
     padding-top: 3px; 
     background-color: #F0F0F0; 
    } 

    .messageNew 
    { 
     background-color: #FFFFFF !important; 
    } 

HTML:!CSSのカスケーディングと重要な問題

<tr replytoid="3" messageid="2700" id="15" class="messageNew"> 
    <td>&nbsp;&nbsp;<input type="checkbox" name="checkAll"></td> 
    <td>Rick Hagar</td> 
    <td>asd</td> 
    <td>3/14/2012 1:09:04 PM</td> 
</tr> 

私は私が間違っているのかを把握することはできません。毎晩<td>に1つずつ現れているので、背景色は#F0F0F0です。また、クラス.messageNewの行は、背景色#FFFFFFに変更されていません。

私は色を逆にすると、さらに見知らぬ人です。私は背景色#F0F0F0を削除し、#FFFFFFを変更すると正しく動作します。

クライアントが変更したかったので、新しいメッセージの背景が白くなり、読み取りメッセージの背景が#F0F0F0になりました。

私は!importantを追加しましたが、違いはありません。

答えて

3

#messageContainer tdは、.messageNewよりも高い特異性を有し、従って「勝る」であろう。試してみてください:`#messageContainer .messageNew td(あなたが!importantを省略することができます)

+0

これはうまくいきました、ありがとう! –

+0

詳細については、http://www.htmldog.com/guides/cssadvanced/specificity/ – Ryan

+0

@JamesWilsonを参照してください。それがうまくいく場合は、その答えを受け入れて問題を解決することができます。 – steveax

2

テーブルセルの背景色は、行の背景色を上書きします。

セレクタを.messageNew > tdに変更すると、!importantは不要になります。

+0

すべてのセルには独自の背景があり、デフォルトでは透明です。セルの背景色を設定すると、透明度が削除されます。技術的には、行の背景色をオーバーライドしません。後者は不透明なバックグラウンドを持つセルでは輝きません。 –

0

あなたはmessageNewクラスを使用してtrbackgroundColorを設定しているように見えますが、最初のルールはtr Sを上書きしますtr、内tdbackgroundColorを設定し、 !importantであっても色です。