Селектор CSS для інших, крім першої дитини та останньої дитини


105

Я роблю дуже просунутий веб-сайт. Моє запитання: Чи можливо вибрати всіх інших дітей, крім " :first-childта" :last-child? Я знаю, що є :not()селектор, але він не працює з більш ніж одним не в дужках. Ось що я маю:

#navigation ul li:not(:first-child, :last-child) {
    background: url(images/UISegmentBarButtonmiddle@2x.png);
    background-size: contain;
}

Ви можете сміливо використовувати це. Зверніть увагу, що він працюватиме лише в сучасних браузерах, і він точно не працюватиме на анти-браузері, яким користуються всі.
позбутися

2
@Radu: "Я роблю дуже просунутий веб-сайт" Нічого сюрпризу ...
BoltClock

1
@BoltClock, правильно, просто кажучи ... Слово попередження. Але в будь-якому випадку, якщо ціль - if Safari, як підказує назва зображення, то це повинно бути безпечним.
позбутися

1
Тепер я розумію , чому це питання виглядає так знайоме ... stackoverflow.com/questions/7403129/combining-not-selectors
BoltClock

"анти-браузер"? Це новий Google Ultron, про який я постійно чую?
Джонатан Дюман

Відповіді:


262

Спробуйте #navigation ul li:not(:first-child):not(:last-child).


ТИ ЧУДОВИЙ! Спасибі!
Даніель

1
rofl, дурість мене not()навіть намагалася це зробити перед гуглінг: P genius
SidOfc

1
Це неправильно: not (A and B)це не буде рівнозначно (not A) and (not B), що швидше було б (not A) or (not B). Це не працює.
Hibou57

2
Немає того, що Салман Аббас сказав, що це правильно. Ти думаєш про кому; #navigation ul li: not (: перша дитина), #navigation ul li: not (: last-child)
користувач847074

20

Впевнені, що це спрацює, вам просто потрібно використовувати два селектори "не".

#navigation ul li:not(:first-child):not(:last-child) {

Він продовжуватиметься вниз після першого, кажучи "не перша дитина" і "не остання дитина".

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