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

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

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

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

3 ответов


конечно, вы можете -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 - работает хорошо.


вот рабочая скрипка: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:'@ ';}

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

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

menu li:before {
    content: "";

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

}