Виберіть другий останній елемент css


135

Я вже знаю про: останню дитину. Але чи є спосіб вибрати div:

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

ПРИМІТКА: без jQuery, лише з CSS


Звичайно, є певна логіка, чому друга-остання дитина є важливою?
Девід Тан

так, мені потрібно вибрати як останній, так і другий останній для застосування деяких стилів
динамічний

чому ти не можеш просто поставити клас на другий останній
дів

3
"чому ви не можете просто поставити клас на другий останній розділ": Можливо, якщо ви перейдете до створеного стильового вмісту, в якому у вас немає (легкого) доступу, щоб додати клас до другого останнього елемента?
Генрік

Відповіді:


271

У 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
  • Сафарі 3.1, 4
  • Internet Explorer 9

1
Ймовірно, це шлях, якщо ви не зможете приєднати клас до діва, який ви намагаєтесь вибрати. Як згадував Frosty, CSS3 не підтримується старими браузерами або IE. Jquery - це набагато кращий варіант, якщо вас турбує обчислюваність між браузерами.
Томас,

Це була копія / вставка з пов'язаної статті ... Відредагована відповідь, дякую.
Frosty Z

1
рішення в css: #container>: nth-last-child (2) {background: red;} Перевірте цей коденд, щоб побачити його в прямому ефірі: codepen.io/marc_dahan/pen/JyxObz
marcdahan

Тепер, коли нам не потрібно підтримувати старіші IE, ця відповідь буде прекрасно працювати. Чесно кажучи, якщо люди все ще використовують IE 8 і нижче, вони не заслуговують на гарні речі.
Стендер

59

Примітка: Опублікував цю відповідь, оскільки пізніше ОП у коментарях зазначив, що йому потрібно вибрати два останні елементи , а не лише передостанній.


:nth-childСелектор CSS3, насправді більш здатним , ніж Ви коли - небудь!

Наприклад, для цього будуть обрані два останні елементи #container:

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

Але це лише початок прекрасної дружби.


Приємно, моя відповідь вибирає лише мінус-дитину мінус 1. Не знав про це. + 'd
rsplak
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.