我正在创建一个水平导航栏。这是它的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;
}
这是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>
这会创建一个带有小星号分隔符的导航栏。它在每个浏览器中都很好......
...除了Firefox。 Firefox忽略生成内容上的“position:absolute”:
为什么会这样做?我的CSS做错了吗?
答案 0 :(得分:2)
答案 1 :(得分:0)
我知道这并不理想,但我找到了一种方法,可以在没有定位到顶部且没有绝对定位ul
的情况下完成。您移除顶部定位,并使用margin-top调整星号的位置。
Jani的解决方案让我感到担忧,因为position:relative
理论上也应该起作用(并且它是较少侵入性的解决方案),但它没有,这意味着解决方案与正常无关定位优先级,似乎依赖于Firefox处理定位优先级的一些奇怪方式。