I'm running into an issue with Chrome only (works fine in FF and Safari, not worrying about IE) that makes me wonder if this is a bug, if I'm using the pseudo elements incorrectly, or if you're not supposed to combine pseudo classes and pseudo elements.
What happens is that Chrome seems to see content="-"; in the last-child:after rule, but doesn't render it. If I open the developer tools and fiddle with some of the properties (like turning the margin on and off), it suddenly shows up.
Here's the stripped down code:
HTML:
<ul>
    <li>One</li>
    <li>Two</li>
    <li>Three</li>
</ul>
<div id="footer">
    <p>This is a footer</p>
</div>
CSS:
ul { text-align: center; }
#footer { text-align: center; margin-top: 200px;}
li:first-child:before, li:last-child:after, #footer:before {
    display: block;
    content: "-";
    color: red;
    margin: 10px 0;
}
Also here: http://jsfiddle.net/D4T6L/4/
It doesn't seem to make a difference whether I declare it separately or all together like I have it.
Can someone shed some light on what I'm doing wrong?
 
    