Css 第n个跳过特定类的子级
我需要选择一个类的第n个子类,该子类不计算特定类的元素。例如,给出了: 李Css 第n个跳过特定类的子级,css,css-selectors,less,Css,Css Selectors,Less,我需要选择一个类的第n个子类,该子类不计算特定类的元素。例如,给出了: 李 li class=“跳过此” 李 李 李 我想让第n个孩子在计算时跳过skip_this类,这意味着如果我想要第3个li不是skip_this,它实际上会选择第4个li,因为它不会计算有skip_this的li。使用like li:n子级(2n):非(.skip_类){ 背景:绿色; } 试验 测试 试验 试验 试验 试验 好吧,通过预处理器,可以创建一个“函数”,它可以生成奇怪且臃肿的选择器列表(对于非无限数量的元
li class=“跳过此”
李
李
李 我想让第n个孩子在计算时跳过skip_this类,这意味着如果我想要第3个li不是skip_this,它实际上会选择第4个li,因为它不会计算有skip_this的li。使用like
li:n子级(2n):非(.skip_类){
背景:绿色;
}
- 试验
测试
- 试验
- 试验
- 试验
- 试验
好吧,通过预处理器,可以创建一个“函数”,它可以生成奇怪且臃肿的选择器列表(对于非无限数量的元素),其有效行为类似于跳过指定项的第n个子项。
但是最终的CSS会非常膨胀(基本上它只是“计数的”
选择器链),所以我认为这实际上不是一个实际的解决方案
演示中的代码一次生成整个列表(我认为这样更容易理解),但是可以使用相同的方法生成单个“跳过第n个”项目
/*
“请让我支持更少”内核。
由@aaronlayton创建
梅里修改
由max更新
*/
//步骤1:选择样式元素并将其更改为text/less
$('head style').attr('type','text/less');
//步骤2:设置开发模式以查看错误
less.env=‘发展’;
//步骤3:告诉Less刷新样式
减。刷新样式()代码>
@颜色:
#E74C3C
#C0392B
//#E67E22
//#D35400
#F1C40F
#F39C12
#2ECC71
#27AE60
//#1ABC9C
//#16A085
#3498DB
#2980B9
#9B59B6
#8E44AD
#34495E
#2C3E50;
.制造彩虹(@colors,skipme);
李{
填充:.5em;
宽度:2米;
&:在{左边距:2em}之后
}
// ..................................
//impl:
.制作彩虹(@颜色,@逃课){
@下一个:~;
@n:长度(@颜色);
.-;.-(@i:1){
李:不是(.@{skip class}){
背景色:提取(@colors,@i);
&:在{content:“@{i}”之后;
@{next}当(@i<@n){
.-(@i+1);
}
}
}
}
- 试验
- 试验
跳过
- 试验
跳过
- 试验
- 试验
- 试验
- 试验
- 试验
跳过
- 试验
- 试验
为什么使用奇数
选择器?@salniro,这只是一个例子。它将与任何第n个子选择器一起工作。如果你愿意的话,我可以改变。没什么大不了的。我想我可能不明白OP的问题<代码>:不(.skip_class)
应该足够了,但是额外的示例不应该足够hurt@salniro,将其更改为使用2ninstead@OfekGila,一种解决方法是使用。skip\u class+:而不是(.skip\u class)
如中所示。这有用吗?如果答案不起作用,或者你的意思是其他的,请让我知道,这样我就可以帮助你。不,这不能用更少的和/或CSS来完成。。。无论何时使用类型为:n的
或:n的子元素
,如下图所示,第n个选择器都会将HTML元素作为其父元素的子元素应用,并将其作为父元素进行计数;因此,项目编号2将始终是项目编号2,而您希望“计数器”跳过示例中的第二个列表项目,并将第三个列表项目计为第二个项目,而不具有“跳过此”类。。。您必须使用脚本,而不是CSS来实现这一点。感谢您的建议,这可能是重复的,但是列表中的项目数量将随时间而变化,n将随时间而变化,我认为javascript解决方案是我唯一的选择。
li:nth-child(2n):not(.skip_class){
}
li:not(.skip)
~ li:not(.skip)
~ li:not(.skip)
~ li:not(.skip)
...
~ li:not(.skip) {}