我如何选择所有tr元素除了第一个tr在一个表与CSS?
我试过用这种方法,但发现行不通。
我如何选择所有tr元素除了第一个tr在一个表与CSS?
我试过用这种方法,但发现行不通。
当前回答
抱歉,我知道这是旧的,但为什么不样式所有tr元素的方式,除了第一个和使用pseudo类:first-child,你撤销你指定的所有tr元素。
下面这个例子可以更好地描述:
http://jsfiddle.net/DWTr7/1/
tr {
border-top: 1px solid;
}
tr:first-child {
border-top: none;
}
/帕特里克
其他回答
你也可以像这样在CSS中使用伪类选择器:
.desc:not(:first-child) {
display: none;
}
这将不会将类应用到带有.desc类的第一个元素。
下面是一个带有示例的JSFiddle: http://jsfiddle.net/YYTFT/,这是一个很好的解释伪类选择器的源代码:http://css-tricks.com/pseudo-class-selectors/
理想的解决方案,但IE不支持
tr:not(:first-child) {css}
第二个解决方案是为所有tr设置样式,然后为第一个子重写CSS:
tr {css}
tr:first-child {override css above}
我很惊讶居然没有人提到兄弟组合子的使用,IE7及后续版本都支持兄弟组合子:
tr + tr /* CSS2, adjacent sibling */
tr ~ tr /* CSS3, general sibling */
它们的功能完全相同(在HTML表的上下文中):
tr:not(:first-child)
听起来你所说的“第一行”是你的表标题-所以你真的应该考虑在你的标记中使用thead和tbody(点击这里),这将导致“更好的”标记(语义正确,对屏幕阅读器有用)和更简单,跨浏览器友好的css选择的可能性(表标题…{…})
另一个选择:
tr:nth-child(n + 2) {
/* properties */
}