我想制作一个菜单,其中每个项目用·分隔。为了实现这一目的,我使用 。
menu li:before {
content: "· ";
}
这很不错,但它也在第一项前面生成了一个点。因此,我想同时使用:first-child
伪类。我可以这样做吗?
menu li:before {
content: "· ";
}
这很不错,但它也在第一项前面生成了一个点。因此,我想同时使用:first-child
伪类。我可以这样做吗?
当然可以 - 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中测试过,运行良好。
这里是可用的 fiddle: 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
如果您不想要一个点,只需在内容中使用空逗号,然后显示为块,并指定高度和宽度即可。
menu li:before {
content: "";
display:block;
width:50px;
height:50px;
background:red;
}