使用CSS如何仅更改表的第二列


124

仅使用css,如何仅覆盖表第二列的css。

我可以使用以下方法访问所有列:

.countTable table table td

由于它不是我的网站,因此无法访问此页面上的html进行修改。

谢谢。

css 

Answers:


238

您可以:nth-child像这样使用伪类:

.countTable table table td:nth-child(2)

但是请注意,这在较旧的浏览器(或IE)中将无法使用,在这种情况下,您需要为单元格提供一个类或使用javascript。


这只会给每个表中的第二个单元格,而不是每一行中的第二个单元格。您需要.countTable表表tr td:nth-​​child(2)
Deeksy 2010年

3
@Deeksy-这是不准确的,它不在乎选择器是什么。nth-child在找到元素之后应用,并将其nth与它具有的任何父元素进行比较,无论它是否在选择器中。您可以在这里看到此工作:jsfiddle.net/JQQPz
Nick Craver

如何仅更改td:nth-​​child(2)中的元素的css。类似于<a>标签。将是td a:nth-​​child(2){}吗?
Ivo San

1
@ ivory-santos只需a在末尾添加,例如td:nth-child(2) a在该元素下方的样式链接中。
尼克·克拉弗

为什么您有两次桌子(与下面的其他答案不同)?
UlFie

26

试试这个:

.countTable table tr td:first-child + td

您还可以重申以设置其他列的样式:

.countTable table tr td:first-child + td + td {...} /* third column */
.countTable table tr td:first-child + td + td + td {...} /* fourth column */
.countTable table tr td:first-child + td + td + td +td {...} /* fifth column */

1
我选择这种方式的情况是,维护代码的站点的所有者不是开发人员,这使他们能够以非常直接的方式更改数据表中列的对齐方式,尽管有点冗长,但带有注释您已经在这里,这使他们很容易知道左侧的哪一列是哪个选择器块。再次不是最优雅,最有效的方法,但是它起作用了!
埃里克·比哈德

18

要仅更改表的第二列,请使用以下命令:

一般情况:

table td + td{  /* this will go to the 2nd column of a table directly */

background:red

}

您的情况:

.countTable table table td + td{ 

background: red

}

注意:这适用于所有浏览器(现代和旧浏览器),这就是为什么我在旧问题中添加答案的原因


仅选择第一列会有什么调整?使用表td {...}也会选择其他列中的所有单元格。
j4v1 2015年

1
@ j4v1 table td {background:red;} //第一列将具有红色背景table td + td {background:blue;} //其余部分将具有蓝色
Abzoozy 2015年

-2

您可以在第二列中为每个单元格指定一个类。

<table>
<tr><td>Column 1</td><td class="col2">Col 2</td></tr>
<tr><td>Column 1</td><td class="col2">Col 2</td></tr>
<tr><td>Column 1</td><td class="col2">Col 2</td></tr>
<tr><td>Column 1</td><td class="col2">Col 2</td></tr>
</table>

我不能用这个 就像我说的,这不是我的页面,因此,我无法更改html。

2
与使用选择器的现有方法相比,@ Duniyadnd并不是一个好方法。
PM

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.