我所处理的元素数量是可变的,我需要一个我无法实现的奇怪解决方案,我甚至怀疑它是否只能通过css实现
如果我的元素数是奇数,我需要选择last-child,如果元素数是偶数,我需要选择最后2个子元素。
我一直在尝试使用nth-last-child
,:not(:nth-last-child())
,奇数和偶数,但从未得到过很好的解决方案。
任何人对此问题都有任何想法/建议,这是添加课程的一部分" odd"喜欢在html桌子上?
提前多多感谢!
答案 0 :(得分:16)
这是一种方式......
.wrap div:last-child,
.wrap div:nth-last-of-type(-n+2):not(:nth-child(even)) {
color: red;
}
<div class="wrap">
<div>Odd</div>
<div>Even</div>
<div>Odd</div>
<div>Even</div>
<div>Odd</div>
<div>Even</div>
</div>
<hr>
<div class="wrap">
<div>Odd</div>
<div>Even</div>
<div>Odd</div>
<div>Even</div>
<div>Odd</div>
</div>
答案 1 :(得分:12)
您可以像这样使用CSS:
li:last-child:nth-child(odd) {
/* Last child AND odd */
background: red;
}
li:nth-last-child(2):nth-child(odd),
li:last-child:nth-child(even) {
/* Before last child AND odd */
/* Last child AND even */
background: green;
}
答案 2 :(得分:-5)
绝对可以用纯CSS完成。请参阅下面的完整代码(奇怪的孩子,最后的孩子红色;甚至孩子,最后2个孩子的绿色)
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<script>
$(document).ready(function(){
$('#but1').click(function(){
var count = $('p').length;
if (count%2!=0) {$('div>p:last-child').css('background','red');}
else {$('div>p:last-child').css('background','green');alert(count);
$('div>p:nth-last-child(2)').css('background','green');
}
});
});
</script>
</head>
<body>
<button id=but1>Click</button>
<div>
<p>This is one. </p>
<p> This is two. </p>
<p> This is three. </p>
<p> This is four. </p>
<p> This is five. </p>
<p> This is six. </p>
</div>
</body>
</html>
享受,编码;)