Как я могу выбрать все дочерние элементы, кроме последнего? - PullRequest
318 голосов
/ 04 апреля 2010

Как выбрать все, кроме последнего потомка, используя селекторы CSS3?

Например, получить только последнего ребенка будет div:nth-last-child(1).

Ответы [ 6 ]

582 голосов
/ 04 апреля 2010

Вы можете использовать псевдокласс отрицания :not() против псевдокласса :last-child . Будучи представлен CSS селекторов уровня 3, он не работает в IE8 или ниже:

:not(:last-child) { /* styles */ }
90 голосов
/ 17 января 2015

Сделать проще:

Вы можете применить свой стиль ко всем div и повторно инициализировать последний с помощью : last-child :

например в CSS :

.yourclass{
    border: 1px solid blue;
}
.yourclass:last-child{
    border: 0;
}

или SCSS :

.yourclass{
    border: 1px solid rgba(255, 255, 255, 1);
    &:last-child{
        border: 0;
    }
}
  • легко читается / запоминается
  • быстро выполнить
  • совместимый с браузером (IE9 +, поскольку он все еще CSS3)
27 голосов
/ 16 апреля 2014

Решение Ника Крейвера работает, но вы также можете использовать это:

:nth-last-child(n+2) { /* Your code here */ }

Крис Койер из CSS Tricks сделал хороший : nth тестер для этого.

22 голосов
/ 14 апреля 2010

Когда выйдет IE9, будет проще. Однако в большинстве случаев вы можете переключиться на проблему, требующую: first-child и стилизовать противоположную сторону элемента (IE7 +).

10 голосов
/ 07 февраля 2011

Использование решения Ника Крейвера с selectivizr допускает кросс-браузерное решение (IE6 +)

0 голосов
/ 23 марта 2016

чтобы найти элементы из последнего, используйте

<style>
ul li:nth-last-of-type(3n){ color:#a94442}  /**/
</style>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...