最後の項目が分離されて右に配置された水平メニューを構築しようとしています。これにより、最後の項目と最後の 2 番目の項目の間にロゴが配置されます。
Firefox、Opera (Presto)、さらには Redmond (9.0+) の汚いものでさえ、期待どおりにレンダリングします。しかし、WebKit (Chrome と Safari の両方で同じようにレンダリングされます) は、最後から 2 番目の項目の後にスペースが必要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>
メニューの左側の部分 (最初から 2 番目の最後の項目、ロゴの左側) を固定幅にし、項目をコンテンツに必要な幅にするため、リストを astable
とリスト項目を as で表示します。table-cell
テキストは何にでも変更できます。そこまでは、すべて問題ありません。しかし、最後の項目に を指定する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;
}
ここにFiddleがあります。
テーブル内の要素の絶対配置はデフォルトの動作ではない可能性があるため、これが WebKit のバグであるかどうかはわかりません。一方、display: none
私が期待するように動作します。どちらの場合も、スペース消費は 0 であるべきではありませんか?
WebKit のバグを知っている人はいますか? または、そのギャップを防ぐ方法を知っている人はいますか?