Можно ли объединить псевдоклассы css3: after и: lastchild? - PullRequest
5 голосов
/ 13 марта 2012

У меня есть список ссылок, и я использую следующий код для добавления слова после каждого элемента ссылки:

a:after {content: "eg"}

Однако я не хочу, чтобы контент располагался после последнего элемента в списке, поэтому в идеале я хотел бы сказать что-то вроде

a:last-child:after {content: ""}

но это удаление контента, который идет после всех ссылок. Есть ли способ объединить эти два? Если есть и вы можете точно объяснить, что происходит, я был бы очень признателен:)

Спасибо

Ответы [ 5 ]

6 голосов
/ 13 марта 2012

Попробуйте это:

HTML:

<ul>
<li><a href="#">Check this out</a></li>
<li><a href="#">Check this out</a></li>
<li><a href="#">Check this out</a></li>
</ul>

CSS:

a:after {content: "what what"}
li:last-child > a:after {content: ""}​

Вот скрипка для демонстрации.

Также имейте в виду, что если у вас много пользователей, использующих IE7 и IE8, псевдокласс :after не работает в IE7 и ниже, а псевдокласс :last-child не работает в IE8 и ниже. Смотрите здесь: http://www.quirksmode.org/css/contents.html

1 голос
/ 27 октября 2016

У меня сработала следующая комбинация селекторов:

#myObj ul li:last-child::after { . . . }
1 голос
/ 13 марта 2012

Я бы сделал это с комбинацией :not, :last-child и :after. С помощью :not(:last-child) вы выбираете каждую ссылку, кроме последней: http://jsfiddle.net/2CS9G/

a:not(:last-child):after{
    content: "--";
}

Если ваши a-теги находятся в списке (ul): http://jsfiddle.net/2CS9G/2/

li:not(:last-child) a:after{
    content: "--";
}
0 голосов
/ 04 марта 2013

Этот комментарий от "Delphi" помогает? (https://stackoverflow.com/a/4917325/960592

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

0 голосов
/ 13 марта 2012

у меня работает> ссылка

Возможно, вы забыли добавить display: block к a.

...