Html 在唯一的表行上取最后一个子项,而不是第一个子项

Html 在唯一的表行上取最后一个子项,而不是第一个子项,html,css,css-selectors,css-tables,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; } 现在我可能有一张只有一行的桌子。 唯一的表行现在分配给第一个子项,而不是最后一个子项,但我希望它是另一种方式 有没有办法不使用Javascript?您可以制定一个规则,该规则仅适用于tr同时是第一个孩子和最后一个孩子的情况,

我有以下CSS:

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

table tbody tr:first-child td {
  padding-top: 6px;
}
现在我可能有一张只有一行的桌子。
唯一的表行现在分配给
第一个子项
,而不是
最后一个子项
,但我希望它是另一种方式


有没有办法不使用Javascript?

您可以制定一个规则,该规则仅适用于tr同时是第一个孩子和最后一个孩子的情况,并且该
表tbody tr:first child:last child td
添加到与
表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;
}​
这里似乎有用:)-
这不可能。你的标记一定有错误。如果它确实是唯一的
tr
,则
最后一个
第一个
都将匹配

但是,应用哪种CSS取决于CSS规则的顺序。因此,您可以确定是否
填充顶部:7px
或填充顶部:6px应通过相应地放置规则来应用

编辑:


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

“如何将最后一个子项分配给所有子项而不是第一个子项”?你能换个说法吗?您在哪里定义了边框底部?可能是个愚蠢的问题,但您是否尝试过
边框底部:无
边框底部:0px
?@poepje:它不会影响表行,因为正如我在开发人员控制台中看到的那样,
第一个子项被分配给该行。@F.卡尔德兰:我试过了,但不知何故我很难解释。如果你只是颠倒规则顺序,让
最后一个孩子
规则优先呢?@F.卡尔德兰:不幸的是,这根本没有效果。我找到了问题的根源。这有点棘手,因为它是由jQuery的插件触发的。不管怎样,谢谢:)是的,但他在:第一个孩子和:最后一个孩子时有相同的“垫底”风格。因此,其中一条规则将仅适用。它适用于不同的样式,如您的示例中的背景和边框。您是对的,这是我的错误。正如我在Sófkas回复中所说,这是插件的错误。我想我现在需要在那里破解一些东西。@Sófka你可以通过切换css规则来解决这个问题。他的问题是,只应用了选择器,这肯定是一个错误。@Dan现在您知道了,插件在末尾插入了一行,只需取
:n最后一个子项(2)
-这将匹配最后第二行;)