Есть куча блоков в .main , надо применить стиль к последнему .one Но блок .two мешает этому
JS использовать не хочется, контент динамический и это будет создавать проблемы
2 ответа 2
Можно все Ваши «one» заключить еще в 1 див с идентификатором, а потом конкретно уже сделать
Вариант 1
Если блок .two всегда есть и он один, воспользуйтесь :nth-last-child(2)
Вариант 2
Подсказано пользователем @Mik. С учетом тонкостей работы псевдокласса :last-of-type можно изменить верстку так, чтобы .two были другими тегами (например
) или уже можно воспользоваться произвольными тегами (например , при этом обязательно указать в css свойство display ) Гугл и Яндекс уже применяют и не стесняются.
Почему не срабатывает :last-child ?
Каждому элементу кроме последнего нужен border-bottom . При добавлении last-child бордер почему-то удаляется у всех элементов.
UPD
В данном случае стили ссылок не влияют на отображение. Им задан свой стиль text-decoration: none;
UPD 1.0
Всем дивам с классом .user-name задан стиль — border-bottom: 1px solid #e2e2e2; .
Суть вопроса — у последнего дива с классом .user-name убрать border-bottom
PS: Все дивы с классом .user-name находятся внутри дива с классом .group-list .
UPD 1.1
При добавлении стиля border-bottom я использую только дивы с классом .user-name что находится внутри них, не имеет значения (к ним не привязываемся).

Для верстальщика псевдоэлементы и псевдоклассы – незаменимые помощники и я вам это сейчас докажу на примере фрагмента PSD макета.

Дизайнеры очень любят разделять пункты меню разными символами, ставя в тупик неопытных верстальщиков. Начинающий верстальщик, наверняка попался бы на удочку и вслед за текстом, понатыкал бы разделители.
В результате мы увидели бы следующую разметку в HTML-документе, как на картинке ниже.

Такой нехитрый способ конечно же работает, но он сильно засоряет код, а практической пользы для семантики от кучи span-ов, никакой нет.
Правильный способ
В HTML коде не нужно вообще, как-то проставлять вертикальные линии. Теперь, мы считаем их псевдоэлементами, а все дальнейшие действия происходить будут в CSS стилях.
Псевдоэлемент after в CSS стилях
Мы видим определенную закономерность, что за каждым пунктом меню, стоит разделитель, значит применяться псевдоэлемент after будет к тегу li.
Символ вертикальная линия имеет следующий код — «