Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Css 第n个跳过特定类的子级_Css_Css Selectors_Less - Fatal编程技术网

Css 第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_类){ 背景:绿色; } 试验 测试 试验 试验 试验 试验 好吧,通过预处理器,可以创建一个“函数”,它可以生成奇怪且臃肿的选择器列表(对于非无限数量的元

我需要选择一个类的第n个子类,该子类不计算特定类的元素。例如,给出了:


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) {}