I’m creating a horizontal navigation bar. Here’s its CSS:
#topnav {
clear: both;
overflow: hidden;
display: table;
}
#topnav ul {
display: table-row;
}
#topnav ul li {
display: table-cell;
vertical-align: middle;
background: #1b4260;
position: relative;
}
#topnav a {
display: block;
color: white;
padding: 10px 0px 15px 10px;
font-size: 14px;
width: 100px;
text-align: center;
}
#topnav ul li+li:before{
content: "*";
position: absolute;
top: 11px;
color: #ff0000;
float: left;
}
And here’s the HTML:
<p>---</p>
<p>---</p>
<div id="topnav">
<ul>
<li>
<a href="blah">Item 1</a>
</li>
<li>
<a href="blah">Item 2</a>
</li>
<li>
<a href="blah">Item 3</a>
</li>
</ul>
</div>
This creates a navigation bar with little asterisk separators. It looks fine in every browser…

… except Firefox. Firefox ignores “position: absolute” on the generated content:

Why would it do that? Am I doing something wrong with my CSS?
You need to position the ul also:
See here: http://jsfiddle.net/k5hVP/1/