CSS Изменить цвет элемента ": after" при наведении

Допустим, у меня есть список элементов:

<ol>
    <li>First</li>
    <li>Second</li>
    <li>Third</li>
</ol>

Когда я нахожу элемент списка, мне нужно получить больше информации о каждом предмете. Я сделал это с псевдоэлементом CSS :after.

ol {
    list-style-type: decimal-leading-zero;
}

li:hover:after {
    content: " + More info";
}

Вот jSfiddle

Теперь, когда я наводил текст More info, я хочу изменить его цвет. Я действительно не понимаю, как добиться этого эффекта. Я пробовал следующие правила css, но он не работает должным образом.

li:after:hover {
    color: red;
}

li:hover:after:hover {
    color: red;
}

Можно ли сделать это в CSS?

Если да, то интересен другой вопрос, могу ли я прикрепить событие onclick к элементу :after?

Ответы

Ответ 1

Как и комментарий ExtPro, вы не можете

Но вы можете сделать как...

HTML:

<ol>
    <li>First<span> + More info</span></li>
    <li>Second<span> + More info</span></li>
    <li>Third<span> + More info</span></li>
</ol>

CSS:

li > span {
    display:none;
}

li:hover > span {
    display:inline;
}

li > span:hover {
    color:red;
}

Использовать: активно как onClick?

li > span:active {
    color:blue;
}

Демо: http://jsfiddle.net/79Lvn/2/


или способ JS/jQuery? просто...

$('ol > li').append('<span> + More info</span>');

Демо: http://jsfiddle.net/79Lvn/4/

Ответ 2

это отлично работает

.topButton:hover:after{
    background-color: #000;
}

Ответ 3

Ее ты пошла на работу, немного поиграла с CSS, используя

.third:hover .sub{
      display:inline;   
}

:

http://jsfiddle.net/79Lvn/3/