Чи є селектор CSS для цього?

У мене є одна або дві розділи на сторінці з класом/класами foo. Мені потрібно лише вибрати другий, це означає, що якщо на ній є лише один, не вибирайте його.

Я спробував div.foo:not (: first) і div.foo:nth-child (2) , і обидва, здається, не працюють.

Будь-які ідеї?

1
: first - це селектор jQuery. В CSS не існує.
додано Автор BoltClock, джерело

2 Відповіді

Немає селектора : nth-of-class() , але якщо обидва елементи div.foo використовують один і той же батьків, ви можете використовувати один із селекторів браузера залежно від про те, чи з'являється другий div.foo відразу після першого чи ні:

div.foo + div.foo /* Is immediately after */
div.foo ~ div.foo /* Is somewhere after among its siblings */

Якщо потенційно може бути більше двох таких div s, вам, можливо, доведеться скасувати стилі у наведеному вище правилі, використовуючи один з них для будь-яких наступних елементів:

div.foo + div.foo ~ div.foo
div.foo ~ div.foo ~ div.foo

І не турбуйтеся про підтримку браузера, це працює в IE7 +.

4
додано
Також працює тільки, якщо вони обидва містяться в одному і тому ж батьку.
додано Автор Sivvy, джерело
Якщо ваш елемент div.foo не підтримує одного і того ж батьківства, вам доведеться використовувати jQuery з першим селектором, як у $ ('div.foo:not(:first ) ') .
додано Автор BoltClock, джерело

Це залежить від кількох речей. Ви проводите тестування на IE? Чи є елементи всередині одного і того ж батька?

Якщо елементи не входять до одного і того ж батьківства, я не впевнений, що вони можуть використовувати ці конкретні селектори, і, наскільки я пам'ятаю, вони в даний час не працюють в IE (за винятком селекторів браузера браузера та не впевнені про IE9 +) .

0
додано