2013-10-28 166 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