如何连续选择第一个和最后一个TD?


170

如何选择TD连续的第一个和最后一个?

tr > td[0],
tr > td[-1] {
/* styles */
}

Answers:


377

您可以使用:first-child:last-child伪选择器:

tr td:first-child,
tr td:last-child {
    /* styles */
}

这应该在所有主流浏览器上都可以使用,但是当动态添加元素时IE7会出现一些问题(它在IE6中不起作用)。


如果要选择第二个和第三个孩子怎么办?
clarkk 2011年

2
和最新的区别tr > tdtr td
clarkk 2011年

以下规则设置了BODY子元素中所有P元素的样式:body> P {line-height:1.3}您可以在以下位置看到:w3.org/TR/CSS2/selector.html#child-selectors(张贴在同一页面上)詹姆斯(James)
弗朗切斯科(Francesco

4
@clarkk- >仅选择直接子级。没有它,将选择所有后代(例如,孩子的孩子)。要选择第二个或第三个孩子,请查看nth-child伪选择器。
2011年

@BoltClock我曾经看到您使用来解决此问题的方法+。有点像, tr td + td + .... +td 但是如果我不知道我有多少吨呢?
罗伊·纳米尔

19

您可以使用以下代码段:

  tr td:first-child {text-decoration: underline;}
  tr td:last-child {color: red;}

使用以下伪类:

:first-child的 意思是“如果此元素是其父元素的第一个子元素,则选择它”。

:last-child的意思是“如果此元素是其父元素的最后一个子元素,则选择它”。

仅元素节点(HTML标记)受到影响,这些伪类将忽略文本节点。


15

您可以使用:first-child:last-child pseudo-selectors

tr td:first-child{
    color:red;
}
tr td:last-child {
    color:green
}

或者您可以使用其他方式

// To first child 
tr td:nth-child(1){
    color:red;
}

// To last child 
tr td:nth-last-child(1){
    color:green;
}

两种方式都可以正常工作


2

如果使用sass(s​​css),则可以使用以下代码段:

tr > td{
   /* styles for all td*/
   &:first-child{
     /* styles for first */ 
   }
   &:last-child{
    /* styles for last*/
   }
 }

2

如果行之前包含一些前导(或尾随)th标记,td则应使用:first-of-type:last-of-type选择器。否则,td如果不是行的第一个元素,则不会选择第一个。

这给出:

td:first-of-type, td:last-of-type {
    /* styles */
}

1
您节省了我的时间,我使用的上一个孩子不起作用,但您的解决方案效果很好
Mirza Obaid
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.