2013-10-17 109 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});