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