CSS로 두 번째 마지막 요소를 선택하십시오.


135

나는 이미 마지막 자식을 알고 있습니다. 그러나 div를 선택할 수있는 방법이 있습니까?

<div id="container">
 <div>a</div>
 <div>b</div>
 <div>SELECT THIS</div> <!-- THIS -->
 <div>c</div>
</div>

참고 : jQuery가 없으며 CSS 만 사용


둘째 자녀가 왜 중요한지에 대한 논리가 있습니까?
David Tang

예, 일부 스타일을 적용하려면 마지막과 두 번째를 모두 선택해야합니다.
동적

왜 마지막 두 번째 div에 수업을들 수
없습니까

3
"두 번째 마지막 div에 클래스를 배치 할 수없는 이유는 무엇입니까?": 생성중인 컨텐츠의 스타일을 지정하는 경우, 두 번째 마지막 항목에 클래스를 추가 할 수있는 (쉬운) 액세스 권한이없는 경우가 있습니다.
Henrik

답변:


271

CSS3에는 다음이 있습니다.

:nth-last-child(2)

참조 : https://developer.mozilla.org/en-US/docs/Web/CSS/:nth-last-child

n 번째 마지막 자식 브라우저 지원 :

  • 크롬 2
  • Firefox 3.5
  • 오페라 9.5, 10
  • 사파리 3.1, 4
  • 인터넷 익스플로러 9

1
선택하려는 div에 클래스를 첨부 할 수 없다면 갈 것입니다. Frosty가 언급했듯이 CSS3는 이전 브라우저 또는 IE에서 지원되지 않습니다. 브라우저 간 계산 가능성이 우려되는 경우 Jquery가 훨씬 더 나은 옵션입니다.
Thomas

링크 된 기사의 복사 / 붙여 넣기였습니다 ... 수정 된 답변, 감사합니다.
Frosty Z

1
CSS 솔루션 : #container> : nth-last-child (2) {background : red;}이 코드 펜을 확인하여 실시간으로 확인하십시오 : codepen.io/marc_dahan/pen/JyxObz
marcdahan

이전 IE를 지원할 필요가 없으므로이 답변은 완벽하게 작동합니다. 솔직히, 사람들이 여전히 IE 8 이하를 사용하고 있다면, 꽤 좋은 것을 가질 자격이 없습니다.
Stender

59

참고 : OP는 나중에 의견 에서 두 번째 요소 뿐만 아니라 마지막 두 요소 를 선택해야한다고 언급했기 때문에이 답변을 게시했습니다 .


:nth-childCSS3 선택은 실제로 당신이 이제까지 상상했던 것보다 더 많은 능력입니다!

예를 들어, 다음 중 마지막 두 요소를 선택합니다 #container.

#container :nth-last-child(-n+2) {}

그러나 이것은 아름다운 우정의 시작일뿐입니다.


좋은 대답, 내 대답은 마지막 자식 빼기 1 만 선택합니다. 이것에 대해 몰랐습니다. + 'd
rsplak
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.