Выберите второй последний элемент с помощью CSS - PullRequest
112 голосов
/ 24 марта 2011

Я уже знаю: последний ребенок. Но есть ли способ выбрать div:

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

ПРИМЕЧАНИЕ: без jQuery, только с CSS

Ответы [ 2 ]

221 голосов
/ 24 марта 2011

В CSS3 у вас есть:

:nth-last-child(2)

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

nth-last-child Поддержка браузера:

  • Chrome 2
  • Firefox 3.5
  • Опера 9,5, 10
  • Safari 3.1, 4
  • Internet Explorer 9
48 голосов
/ 24 марта 2011

Примечание: Опубликовал этот ответ, потому что ОП позже заявил в комментариях, что ему нужно выбрать последние два элемента , а не только предпоследний.


Селектор :nth-child CSS3 на самом деле более эффективен, чем вы когда-либо могли себе представить!

Например, он выберет последние 2 элемента #container:

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

Но это только начало прекрасной дружбы.

#container :nth-last-child(-n+2) {
  background-color: cyan;
}
<div id="container">
 <div>a</div>
 <div>b</div>
 <div>SELECT THIS</div>
 <div>SELECT THIS</div>
</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...