私は私のテーブルの行のいずれかの黄色の背景を作成しようとしています。次のコード行
<table class="table table-bordered table-striped">
私自身のスタイリングに取って代わるものと思われます。クラスを削除すると、行は黄色で表示されます。クラスを維持するためのいくつかの方法はありますか?ただし、色が優先されるように設定をオーバーライドしますか?
私は私のテーブルの行のいずれかの黄色の背景を作成しようとしています。次のコード行
<table class="table table-bordered table-striped">
私自身のスタイリングに取って代わるものと思われます。クラスを削除すると、行は黄色で表示されます。クラスを維持するためのいくつかの方法はありますか?ただし、色が優先されるように設定をオーバーライドしますか?
これはCSSの特異性のために発生します。table.table-striped tr
はtable tr
より具体的です。より具体的なルールは、より特定のルールを優先します。私の意見では、できるだけ長く!important
を避け、セレクタをより具体的にすることに重点を置いてください。したがって、あなたのケースでは、次のようにしてください。
table.table-striped tr.zebraHover td {
background-color: #FFFACD;
}
行は、黄色である。その内部のセルは#f9f9f9なので、行の背景色を見ることはできません。
行自体ではなく、行内のセルと一致するようにセレクタを変更する必要があります。セレクタのspecificityを増やす必要があります。これは、既に使用されているものがより具体的であるためです。あなたのCSSの
変更この
tr.zebraHover td {
background-color: #FFFACD !important;
}
そして、はい、私はそれが非常に汚れている知っています。誰かがこれをよく知っているなら、私の答えにコメントしてください。私はより良い解決策を知りたいと思うでしょう!
クラスをIDに変更してください。
CSS:
#zebraHover td{
background-color: #FFFACD;
}
HTML
<tr id="zebraHover">
<td>1</td>
<td>User1</td>
<td>[email protected]</td>
<td><a class="btn btn-danger" href="#">Deactivate</a></td>
</tr>
問題は、高い特異性でセレクタを使用して行の背景色を交互に設定したルールによって引き起こされます。これらを適切に無効にするには、たとえば
tr.zebraHover,
.table-striped tbody tr:nth-child(2n+1).zebraHover td
{
background-color: #FFFACD;
}
彼は!importantを使用する必要はありません。ここでの問題はセレクタの優先順位です。彼は、より高い価値を持つセレクタ、または後で定義されるセレクタを必要とするだけです。 – reedlauber
ありがとう、私はあなたに感謝して別の答えを見つけました。クラスをIDよりもクラスに変更しました。魅力のように働きます –
!重要なのは実用的でなく、非難されています... –