Можно ли использовать несколько псевдоэлементов в css?

Я хочу создать меню, в котором каждый элемент будет разделен символом ·. Для этого я использую

menu li:before {
    content: "· ";
}

Это набухание, но оно также создает точку перед первым элементом. Поэтому я хотел бы использовать псевдо-класс :first-child. Могу ли я это сделать?

Ответы

Ответ 1

Конечно, вы можете - http://jsfiddle.net/WQBxk/

p:before {
    content: "BEFORE ";
    display: block;
}

p:first-child:before {
    content: "1ST";
    display: block
}
​

Плохой - он не будет работать в IE7 и ниже. Не из-за множественных псевдоселекторов, а из-за не поддерживаемых :before - http://kimblim.dk/css-tests/selectors/

Просто протестировано в IE8 - хорошо работает.

Ответ 2

Вот рабочая скрипка: http://jsfiddle.net/surendraVsingh/zRrLF/

<ul>
<li>lorem</li>
<li>lorem</li>
<li>lorem</li>
<li>lorem</li>
<li>lorem</li>
<li>lorem</li>

</ul>​

CSS

li:before{content:'. ';}
li:first-child:before{content:'@ ';}

Ответ 3

Конечно, вы можете использовать псевдо-классы. Они очень хорошо поддерживаются с IE8 и выше. Вы можете проверить совместимость любого псевдокласса, который вы собираетесь использовать здесь http://caniuse.com/#search=after

Если вы не хотите, чтобы точка просто использовала пустые запятые в содержимом, а затем отображала: block и также указывала высоту и ширину.

menu li:before {
    content: "";

    display:block;
    width:50px;
    height:50px;
    background:red;

}