CSS 마지막 자식 (-1)


161

목록의 마지막 하위를 선택할 수있는 CSS 선택기를 찾고 있습니다.

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

물론 유효하지 않은 nth-last-child는 역동적 인 방법을 제공하지 않는 것 같습니다. 자바 스크립트로 대체 할 수는 있지만 간과 한 CSS 방법이 있는지 궁금합니다.


11
보통 "두 번째 마지막"이라고합니다. 그것에 대한 또 다른 멋진 단어가 있습니다 : "최후".
BoltClock

2
@BoltClock 나는 "두근 두근"이라는 단어를 좋아합니다. 나는 지금 끔찍한 Facebook 업데이트에서 사용할 것입니다.
앤드류 이발소


2
penultimate를 언급 한 모든 사용자에게 감사합니다. 이는 Google에서 "css penultimate"로 1 위를 차지했습니다.
chakeda

답변:


303

당신 사용할 있습니다 :nth-last-child(); 사실, :nth-last-of-type()나는 당신이 무엇을 사용할 수 있는지 모르겠습니다. "동적"의 의미가 무엇인지 잘 모르겠지만 목록에 더 많은 자녀가 추가 될 때 스타일이 새로운 두 번째 마지막 자녀에게 적용되는지 여부를 의미하는 경우, 그렇습니다. 대화 형 바이올린.

ul li:nth-last-child(2)

알았어! 코드 인터프리터 (jsfiddle)가이를 검증하지 못했습니다. 그들의 측면에서 버그를 추측하십시오! 감사합니다
Hedde van der Heide

4
@ 데이비드 알렌 : 나는 그가 이미 사용하려고하면 그가 관심 생각하지 않습니다 :nth-child(5):last-child. 이와 같은 의견은 질문을 받거나 스스로 유지해야합니다.
BoltClock

1
그는 지원하지 않는 문제에 대해 알지 못할 수도 있습니다. 나는 그것을 강조하고 있습니다 .... jQuery를 사용하여 답변을했으며 JavaScript가 비활성화 된 사용자에게는 작동하지 않는다는 것을 기쁘게 생각합니다. 그러나 더 많은 사람들이 JS 장애가있는 것보다 IE7 / 8을 사용합니다
David Allen

1
@David, selectivrz 또는 modernizr 플러그인이이 문제를 해결할 수 있다고 생각합니다. 문서를보아야합니다
Hedde van der Heide

@ArgsKwargs 위대한 논평은 selectivizr에 대해 들어 본 적이 없습니다. 그것이 마지막 자녀를 지원하는지 알려주십시오
David Allen

1

PHP가 해당 요소에 클래스 레이블을 붙일 수 없다면 jQuery를 사용하는 것이 좋습니다.

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

6
John이 아무도 그것을 사용 하지 않는다고 생각:nth-last-child() 하기 때문에 jQuery가 구현하지 않는다는 것은 당연한 일입니다 .
BoltClock

나는 파이썬으로 레이블을 붙이고 싶다 ;-) ontopic : 글쎄 CSS는 이런 식으로 괜찮아 보인다, 아마도 jsfiddle은 아무도 그것을 사용하지 않을 것이라고 생각한다 :-)
Hedde van der Heide

@ArgsKwargs : jsFiddle에서 작동하지 않는 이유가 이상합니다. 해석은 브라우저에 달려 있습니다. 자체 CSS 엔진이 없습니다.
BoltClock

@BoltClock은 나에게 잘못되지 않습니다. 코드 도우미 (색상 시각화)는 닫히지 않은 것을 나타냅니다 (그래서 시도조차하지 않았습니다)
Hedde van der Heide

나는 어떤 코드도 닫히지 않았다고 생각합니다. 하지만 난 당신이 "컬러 시각화"에 대해 무슨 뜻인지
데이비드 알렌에게
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.