在唯一的桌子行上取最后一个孩子而不是第一个孩子

时间:2012-06-14 08:38:46

标签: html css css-selectors css-tables

我有以下CSS:

table tbody tr:last-child td {
  padding-top: 7px;
  border-bottom: 0;
}

table tbody tr:first-child td {
  padding-top: 6px;
}

现在我可能只有一排桌子 现在,唯一的表格行已分配到first-child而不是last-child,但我希望它是另一种方式。

有没有Javascript的方式?

2 个答案:

答案 0 :(得分:1)

您可以制定一个规则,该规则仅在tr同时为第一个子项和最后一个子项时,此table tbody tr:first-child:last-child td添加到与table tbody tr:last-child td相同的样式。它会是这样的:

table tbody tr:last-child td,
table tbody tr:first-child:last-child td{
  padding-top: 7px;
  border-bottom: 0;
}​

这里似乎工作:) - http://jsfiddle.net/HjZU4/

答案 1 :(得分:1)

这不可能。你的标记必须有一些错误。如果它确实是唯一的tr,则lastfirst都会匹配。

<强> See example

但是,将应用哪个CSS取决于css-rules的顺序。因此,您可以通过相应地放置规则来确定padding-top: 7px; or padding-top: 6px;是否适用。

编辑:

由于您的问题是由插件引起的,插件最后会自动插入一行,因此您只需使用:nth-last-child(2)来匹配倒数第二个元素即可。
(但请注意,nth-last-child的浏览器支持略差于last-child