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



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



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

674   6  

6 ответов:

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

:not(:last-child) { /* styles */ }

сделать это просто:

вы можете применить стиль ко всем div и повторно инициализировать последний с :в прошлом-ребенок:

например 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)

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

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

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

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

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

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

<style>
ul li:nth-last-of-type(3n){ color:#a94442}  /**/
</style>

Comments

    Ничего не найдено.