我正在尝试构建一个水平菜单,将最后一项分开并定位正确,以便在最后一项和倒数第二项之间找到一个徽标。
Firefox、Opera (Presto) 甚至 Redmond (9.0+) 中的脏软件都像我预期的那样渲染它。但是 WebKit(Chrome 和 Safari 都呈现相同的内容)在倒数第二个项目之后占用了一些空间,而最后一个项目在没有position: absolute
.
<header>Logo</header>
<nav>
<ul>
<li><a href="#">Home</a></li>
<li><a href="#">Statistics</a></li>
<li><a href="#">Data Management</a></li>
<li><a href="#">Market Research</a></li>
<li><a href="#">Web & Apps</a></li>
<li><a href="#">Contact</a></li>
</ul>
</nav>
我将列表显示为table
和列表项显示为table-cell
因为我希望菜单的左侧部分(第一个到倒数第二个项目,左到徽标)具有固定宽度,而项目采用其内容所需的宽度。文本可以更改为任何内容。到那里为止,一切都很好。但是,如果我给最后一项 a display: block; position: absolute
,WebKit 会呈现该间隙(示例中为白色)。
nav ul
{
display: table;
background: white; /* that's what you see in webkit */
}
nav ul li
{
display: table-cell;
}
nav ul li:last-child
{
display: block; /* "display: none;" works like I would expect */
position: absolute;
}
这是一个小提琴。
我不确定这是否是 WebKit 中的错误,因为在表格中绝对定位元素可能不是默认行为。另一方面,display: none
像我期望的那样工作。在这两种情况下,空间消耗不应该都是 0 吗?
有人知道 WebKit 中的一个错误,或者有人知道如何防止这种差距吗?