如何在没有JS的情况下为最后可见元素添加样式

时间:2013-01-16 15:48:47

标签: html css css3 css-selectors

此选择器不起作用。真的有可能吗?

请参阅此http://jsfiddle.net/Hd7VZ/

.x-form-fieldset:last-child:not(x-item-hidden) {
    border-bottom: 0;
}

其中一个解决方案就是http://jsfiddle.net/8Fpyu/

2 个答案:

答案 0 :(得分:2)

antejan的评论是正确的,目前您正在其块中选择.x-form-fieldset :last-child。如果您想在:last-child中选择.x-form-fieldset,那么这是正确的语法:

.x-form-fieldset :last-child {
    border-bottom: 0;
}

但即使最后一项被隐藏,它仍然是:last-child,因此添加:not将不会在您的示例中实现任何内容。

目前CSS中没有任何内容可以让你忽略不可见的元素,正如你可以从this small modification of your example看到的那样简单的效果,如交替条带化也会被隐藏元素打破。这可能是对CSS未来版本的一个有价值的补充,您可以尝试suggesting it to the W3C CSS Working Group并看看他们是否认为值得添加到未来版本的选择器规范(CSS Selectors Level 4正在通过标准流程现在,但ideas are being accepted for CSS5 Selectors)。

与此同时,您仍然无法找到替代标记方法,或者在JavaScript中进行黑客攻击。

答案 1 :(得分:0)

看起来你有语法错误,添加'。'如果它是一个类或'#',如果它是x-item-hidden之前的id .x-form-fieldset:last-child:not(.x-item-hidden) | .x-form-fieldset:last-child:not(#x-item-hidden)