2013-10-28 212 views
1

我正在使用Javascript創建一個表,並且每個td都有一個列和行類。例如,第一個最左上角的td有兩個類,.row0和.column0。這裏是一個創建clases的代碼行:CSS選擇器不工作?

theTr.append($("<td>", { "class": "row"+h + " column"+i, 
         html: heights[h][i] 
         })); 

其中hi是其增量變量。忽略

html: heights[h][i] 

部分,你可以看到每個TD的類就是類似這樣的格式,目前

<td class="rowh columni"> 

,我想第一行中的所有TD的有藍色和字體顏色背景顏色的白色。爲此,我做了

.row0 { 
    background-color: blue; 
    color: white; 
} 

它完美的工作。我也希望column0中的每個td(除了位於.row0上的td)都具有紅色的字體顏色。所以我試過

.column0:not(.row0) { 
    color: red; 
} 

但是這不起作用,它不會對任何字體顏色做任何改變。我知道,我可以只使用

!important 

標籤對TD與.column0 .row0,我知道有這樣做的其他方式,但存在與做這件事的方法:不選擇?請注意,我使用的是IE8和CSS,而不是CSS3.Am,我正確使用:not選擇器?

+2

':not()'在IE8中不受支持。 – 412

+1

':not()'是CSS3,所以你不能指望它在任何地方都能工作。 –

+0

查看http://caniuse.com/#search=不支持從IE9開始 –

回答

4

IE8不支持:不是選擇器

+0

啊,好吧。我想我會使用!重要的標籤。 – user2719875

+0

@ user2719875 - 您可以使用像[Selectivizr](http://selectivizr.com/)這樣的JS工具來對CSS3選擇器進行polyfill支持。這將幫助你支持IE8的':not()'(和其他選擇器)。 – Spudley