2013-10-17 97 views
2

时除外可以说我有如下表:CSS选择器的第一个TD包含合并单元格

<table style="width:500px"> 
<tr> 
    <td>Col 1</td> 
    <td>Col 2</td> 
</tr> 
<tr> 
    <td colspan="2"></td> 
</tr> 
</table> 

现在,如果我用first-child选择的样式应用到首个TD,反正是有,我可以有它忽略了拥有colspan的td(尽管当然这是第一个孩子)?

table tr td:first-child{ 
    width:100px; 
} 

我会很乐意给与合并单元格它自己的类名的TD,如果有那么一个方法,我可以改变我的选择说apply to first child except when the class name is x

回答

7

使用:not([attr="val"])

table tr td:first-child:not([colspan="#NUMBER OF COLSPAN"]){ 

    width:100px; 

} 
+0

谢谢!完美解决方案 – QFDev

+0

很高兴帮助:) –

0

为什么不给班上的对立属性?

table tr td:first-child{ 
    width:100px; 
} 

.your_class { 
    width:auto !important; 
} 
+0

我能做到但我需要重写很多样式。我提供的例子仅仅是为了简化,但实际上我会在第一列有大约20个CSS样式。 – QFDev

1

试试这个:

table tr td:first-child:not(.ignore) { 
    width:100px; 
} 

(如果你放弃,你要忽略一类的“忽略”了TD)

+0

非常优雅的解决方案,但是:不是仅支持ie9 + – BBagi

0

一个简单的方法是只一个类添加到你真的想选择第一个TD:

<table style="width:500px"> 
<tr> 
    <td class='selectable'>Col 1</td> 
    <td>Col 2</td> 
</tr> 
<tr> 
    <td colspan="2"></td> 
</tr> 
</table> 

然后打:

table tr td.selectable { 
    width: 100px; 
} 

或者,你可以尝试jQuery和该行把 “ignoreMe” 的类名,你不想影响:

$('table tr td:first-child').not('.ignoreMe').css({width:100});