2012-02-10 2 views
82

목록의 마지막 자식을 선택할 수있는 CSS 선택기를 찾고 있습니다.CSS last-child (-1)

<ul> 
    <li>1</li> 
    <li>2</li> 
    <li>3</li> 
    <li>4</li> 
    <li>5</li> <!-- select the pre last item dynamically no matter how long this list is --> 
    <li>6</li> 
</ul> 

정적 방법 :

ul li:nth-child(5) 

동적 방법 :

ul li:last-child(-1) 

확인하지 않습니다 물론, 이는 또한 n 번째 - 마지막으로 아이가하지 않는 것 동적 방법을 제공합니다 .. 내가 자바 스크립트로 대체 할 수 있지만 내가 간과하는 CSS 방식이 있는지 궁금합니다

+7

일반적으로 "두 번째 마지막"이라고합니다. 또 다른 멋진 단어가 있습니다 : "마지막에서 두번째". – BoltClock

+1

@BoltClock 나는 "어미로부터 두 번째"라는 단어를 좋아한다. 나는 snarky Facebook 업데이트에서 그것을 사용할 것이다. –

+0

[CSS로 마지막 두 번째 요소 선택] 가능한 중복 (http://stackoverflow.com/questions/5418744/select-second-last-element-with-css) –

답변

167

:nth-last-child(); 실제로 :nth-last-of-type() 외에도 다른 용도로 사용할 수 있을지 모르겠습니다. 나는 당신이 "역동적 인"것에 의해 당신이 무엇을 의미하는지 모르겠다. 그러나 더 많은 아이들이리스트에 추가 될 때 그 스타일이 새로운 두 번째 마지막 아이에게 적용되는지 여부를 의미한다면, 그렇다. 당신이 클래스와 해당 요소에 레이블을 PHP를 얻을 수 있습니다하지 않는 한 Interactive fiddle.

ul li:nth-last-child(2) 
+0

알았어! 코드 해석기 (jsfiddle)는 그것을 검증하지 않았다. 그들의 편에서 버그를 맞춰라! 감사합니다 –

+0

No IE7 and IE8 Support –

+4

@David Allen : 그는 이미': nth-child (5)'와': last-child'를 사용하려고한다면 신경 쓰지 않는다고 생각합니다. 이와 같은 의견은 질문에 대한 답이나 자아를 지켜야합니다. – BoltClock

1

당신은 jQuery를 사용하는 것이 더 낫다.

jQuery(document).ready(function() { 
    $count = jQuery("ul li").size() - 1; 
    alert($count); 
    jQuery("ul li:nth-child("+$count+")").css("color","red"); 
}); 
+3

[John은 아무도 사용하지 않는다고 생각하기 때문에] jQuery는': nth-last-child()'를 구현하지 않는다는 것은 완전히 짜증나는 일입니다 (http://ejohn.org/blog/selectors-that-people-actually-use) . – BoltClock

+0

필자는 파이썬으로 라벨을 붙이고 싶습니다 .--- ontopic : 글쎄,이게 좋을 것 같아요. 아마 jsfiddle도 아무도 사용하지 않을 거라고 생각합니다. :-) –

+0

@ArgsKwargs : jsFiddle에서 작동하지 않는 이유가 이상합니다. 그것을 해석하는 것은 브라우저의 몫입니다. 자체 CSS 엔진이 없습니다. – BoltClock