下面的标记将SAMPLE TEXT
左对齐。
对我而言,它似乎应该与右边对齐。与右对齐的类在左对齐的类之后声明。与右边对齐的类甚至最后引用。那么为什么与左翼对齐的班级会赢?
CSS
.table {
width: 100%;
}
.table td {
text-align: left;
}
.cell {
text-align: right;
}
HTML
<table class="table">
<tr>
<td class="cell">
SAMPLE TEXT
</td>
</tr>
</table>
请参阅我的jsFiddle Example。
答案 0 :(得分:25)
.table td
选择器的specificity更高。 CSS特殊性规则有点奇怪...... ID比类名更重,比标记名更重。
特殊规则,简而言之:
较高的值将始终覆盖较低的值。在平局的情况下,最后加载的规则获胜。
答案 1 :(得分:6)
我强烈建议您阅读实际的CSS specification on specificty。
有四个级别:
!important
(a) 对于每个选择器,在其各自的字母类别中添加一个:
#foo.bar baz -> a=0, b=1, c=1, d=1
#fizz#buzz -> a=0, b=2, c=0, d=0
a
特朗普b
王牌c
胜过d
。
如果有平局,第二个获胜:
#foo #bar baz
#fizz #buzz baz <-- same specificity, this one wins
答案 2 :(得分:3)
text-align
的样式将胜过.table td
所适用的text-align
.table td特异性是(1-1):
(10 x 1类选择器)+(1 x 1元素选择器)
。细胞特异性为(1-0):
(10 x 1级选择器)
要使cell
获胜,它必须具有比其他人更高的特异性。它也可以与其他人相同,但必须在相同级别的其他人之后声明。
答案 3 :(得分:1)
如果你这样做
.table {
width: 100%;
}
.table td {
text-align: left;
color: Yellow;
background-color: Red;
}
td.cell {
text-align: right;
}