CSS:除了最后一行,我如何在表行上有一个边框底部

CSS:除了最后一行,我如何在表行上有一个边框底部,css,Css,我有一个可变数量的表行(n),我希望边框底部应用于行0..(n-1) 如何做到这一点?您有两个选择:(1)在HTML中向最后一行添加专门的类;或者(2)在CSS中使用:最后一个子类伪类 备选案文1:专门类 如果可以将类应用于HTML,则可以将专用类添加到最后一行。如果您的标记是由服务器端脚本(例如PHP脚本)生成的,则需要编辑该脚本以添加类似的标记 HTML: 选项2:CSS伪类 另一种方法是使用:last childCSS伪类。使用:last child类不需要对HTML进行任何更改,因此如果

我有一个可变数量的表行(n),我希望边框底部应用于行0..(n-1)

如何做到这一点?

您有两个选择:(1)在HTML中向最后一行添加专门的类;或者(2)在CSS中使用
:最后一个子类
伪类

备选案文1:专门类 如果可以将类应用于HTML,则可以将专用类添加到最后一行。如果您的标记是由服务器端脚本(例如PHP脚本)生成的,则需要编辑该脚本以添加类似的标记

HTML:

选项2:CSS伪类 另一种方法是使用
:last child
CSS伪类。使用
:last child
类不需要对HTML进行任何更改,因此如果您无法更改HTML,则可能是更好的选择。CSS几乎与上述内容相同:

CSS:


这种方法的缺点是
:最后一个子类
伪类。

如果使用jQuery,可以使用以下脚本

$(document).ready(function() {
    $(".tableClass tr:not(:last) > td").css('border-bottom', ' 1px solid #DDD');
});

这用于html中的任何类调用

tr:last-child {
    border-bottom: none;
}

节省了将类放在最后一个标记上的时间。

我知道这是一个老问题,但值得一提的是,现在使用CSS3,您只需使用CSS中的
not()
选择器,如下所示:

tr:not(:last-child) {
    border-bottom: 1px solid #E3E3E3;
}

你也可以用这种方式

table tr:not(:last-of-type) { border-bottom: none; }

我的行数可变。所以,我不知道最后一排是什么时候=\@DerNalia,如果您有一个动态的行数,那么您就有一个服务器端或客户端脚本来生成它们。我建议用这种语言标记问题,这样我们就可以帮助您实现@KP的第一个建议。As
:最后一个子项{border bottom:0 none transparent;
(或类似项)是唯一的纯css选项。如果您同意不使用纯css,则生成脚本可以将class=“last”应用于最后生成的元素。您不需要jQuery,相同的选择器纯css将起作用:
。tableClass tr:not(:last)>td{border bottom:1px solid#DDD;}
最烦人的事情之一是前端“开发人员”使用jQuery来弥补他们对CSS知识的缺乏。是的,但它会从最后一个tr的thead中删除边框
tr:last-child {
    border-bottom: none;
}
tr:last-child td {
    border-bottom: none;
}
tr:not(:last-child) {
    border-bottom: 1px solid #E3E3E3;
}
table tr:not(:last-of-type) { border-bottom: none; }