1

次の例を設定しました: http://jsfiddle.net/SXEty/

<style>
table td, th { padding: 8px; text-align: left; }
table td:nth-child(1) { color: red; }
table td { color: blue }
</style>
...
<table>
    <tr><th>Name</th><th>Age</th><th>City</th></tr>
    <tr><td>Bob</td><td>27</td><td>Los Angeles</td></tr>
    <tr><td>Charlie</td><td>34</td><td>San Diego</td></tr>
    <tr><td>Daniel</td><td>41</td><td>San Francisco</td></tr>
</table>

最初の列が青ではなく赤になっている理由が気になります。

私の CSS では、すべての最初の子を「赤」に設定しました。しかし、CSS の次の行では、すべての要素を「青」に設定します。CSS の 2 行目 (色: 青) は前の行 (色: 赤) をオーバーライドしませんか? それとも、n番目の子プロパティが優先されるということですか? 優先順位がある場合、これはすべてのブラウザーに当てはまりますか?

4

2 に答える 2

5

td:nth-child(1)より具体的だからですtd

私が提案するスターウォーズのテーマに関するCSSの特異性の素晴らしい概要があります

http://www.stuffandnonsense.co.uk/archives/css_specificity_wars.html

ここに画像の説明を入力

于 2013-02-25T23:08:48.857 に答える
3

table td:nth-child(1)はより具体的なセレクタであるためtable td、後者が後で宣言された場合でも優先されます。

興味深いのは、親 ID を でターゲットにすると、CSS シートで が後で宣言されていtable tdても、すべてが青色に変わることです。table td:nth-child(1)

ここに画像の説明を入力 http://jsfiddle.net/mLrAf/2/

于 2013-02-25T23:09:15.887 に答える