Css 最后一个孩子?
我有一个无序的列表,它可以包含偶数项或奇数项。我正在寻找一种CSS唯一的方法,如果lis的数量是偶数,可以从最后2个li标记中删除边框。:last-child伪选择器将删除最后一个Css 最后一个孩子?,css,css-selectors,Css,Css Selectors,我有一个无序的列表,它可以包含偶数项或奇数项。我正在寻找一种CSS唯一的方法,如果lis的数量是偶数,可以从最后2个li标记中删除边框。:last-child伪选择器将删除最后一个 li { float: left; border-bottom: 1px solid #000; } li:last-child{ border-bottom: none; } 适用于奇数个lis 但对于偶数,我需要删除单元格3的底部 所以我想我可以用li:n最后一个孩子,但我不知道应该用什么等式来抓住最后一个奇
li {
float: left;
border-bottom: 1px solid #000;
}
li:last-child{
border-bottom: none;
}
适用于奇数个lis
但对于偶数,我需要删除单元格3的底部
所以我想我可以用li:n最后一个孩子,但我不知道应该用什么等式来抓住最后一个奇数的孩子
它不是2n+1,2n-1,n-1,或者我能想到的任何东西。请帮忙 您可以使用第n个子选择器:
li:nth-child(3) { border-bottom: none;}
li:nth-child(4) {border-bottom: none;}
但是,由于IE 8中不支持此功能。。。您只需将一个类设置为这两个li元素,并使用特殊性将边框底部设置为“无”。n最后一个子元素从最后一个子元素向后计数,因此要获取倒数第二个元素,表达式为:
li:nth-last-child(2)
您可以组合伪选择器,以便选择从第二个到最后一个的子项,但仅当其为奇数时,使用:
li:nth-last-child(2):nth-child(odd) {border-bottom: none;}
因此,整个事情应该是:
li:last-child,
li:nth-last-child(2):nth-child(odd) {border-bottom: none;}
在回答@ithil的问题时,以下是我在SASS中的写作方式:
li
&:last-child,
&:nth-last-child(2):nth-child(odd)
border-bottom: none
这并不简单,因为“倒数第二个奇数子”的选择总是需要“两步”选择器
在回答@Caspert的问题时,您可以通过将更多选择器分组来对任意多个最后的元素执行此操作。您觉得应该有一些xn+y模式来执行此操作而不进行分组,但是这些模式只是通过从最后一个元素向后计数来工作
关于最后三个要素:
li:last-child,
li:nth-last-child(2):nth-child(odd),
li:nth-last-child(3):nth-child(odd) {border-bottom: none;}
这是一个类似SASS的东西可以帮助您生成选择器的地方。我会将其构造为占位符类,并使用它扩展元素,并设置变量中的列数,如下所示:
$number-of-columns: 3
%no-border-on-last-row
@for $i from 1 through $number-of-columns
&:nth-last-child($i):nth-child(odd)
border-bottom: none
//Then, to use it in your layout, just extend:
.column-grid-list li
@extend %no-border-on-last-row
可能:
li:nth-child(2n){border:1px dashed hotpink}
li:nth-child(2n-2), li:last-child{border:none;}
另一种选择:
li:last-child:not(:nth-child(odd))
这是一把小提琴:这对我有用。动态选择最后一个奇数子项
li:nth-last-child(1):nth-child(odd)
这只会抓取第三个或第四个孩子-它不能处理任意数量的物品。这不符合OP的要求。@fskreuz:这可能已经过时几年了。考虑找到一个更新的参考文献。在文章的末尾,它已经更新了THU 15 DEC 2011 06:20:47上午CET。基于:除IE8和更早版本外,所有主流浏览器都支持:n子选择器。直到伪选择器可以像常规选择器一样组合。。。我知道我在概念上遗漏了一些东西,但不确定是什么。谢谢你知道这个解决方案是否可以通过使用sass/less这样的预处理器来简化吗?我已经在答案中添加了sass中的等价物。我已经有一段时间没有少用了-不确定它在里面会是什么样子,或者它是否会更简单。参考:,
li:last-child:not(:nth-child(odd))
li:nth-last-child(1):nth-child(odd)