我想知道是否有可能将以下内容转换成纯CSS
$('.child:visible:first').css({'border-top':'1px-solid#cccccc','border-bottom':'1px-solid#cccccc');
我似乎找不到解决办法
作为抽象,这是不可能的:jQuery依赖于遍历DOM以编程方式确定适合各种条件的元素,然后停止。你不能这样做。但我想在实践中你会知道很多事情。此解决方案假定:
- 您知道这些
元素将如何被隐藏。它们是否将display:none作为内联样式(如果您在它们上使用了jQuery.hide(),它们将)?他们是否有一个.hidden类?只要您知道该方法,就可以使用选择器来表示该方法。您可以将其与CSS3:not()选择器结合使用 - 因为它们被称为
.child,所以我假设它们都是兄弟姐妹-没有一个嵌套在其他.child元素中,并且它们都共享同一个父元素
如果上述任何一项都不是真的,那就不可能了。但如果它们都是真的:
.child:not([style*=“display:none]”){
边框顶部:1px实心#中交;
边框底部:1px实心#CCCC;
}
.child:not([style*='display:none'])~.child:not([style*='display:none'])){
/*…或任何默认样式*/
边界顶部:无;
边框底部:无;
}
:not()伪类非常明显:它只选择与包含的选择器不匹配的元素。~运算符意味着,如果左侧的选择器在源代码后面出现,则右侧的选择器将成为目标