position:absolue de display:table-cell éléments causes WebKit pour le rendu de l'écart

Je suis en train de construire un menu horizontal avec le dernier élément séparés et placés à droite, de sorte qu'un logo se déroule entre le dernier et l'avant-dernier élément.

position:absolue de display:table-cell éléments causes WebKit pour le rendu de l'écart

Firefox, Opera (Presto) et même le sale ceux de Redmond (9.0+) rendre comme je m'attends. Mais WebKit (Chrome et Safari à la fois de rendre le même) prend de la place après la seconde dernier point où le dernier élément de rester sans 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 &amp; Apps</a></li>
        <li><a href="#">Contact</a></li>
    </ul>
</nav>

- Je afficher la liste table et les éléments de la liste que table-cell parce que je veux la partie gauche du menu (le premier, le deuxième, dernier élément, à gauche du logo), avoir une largeur fixe, tandis que les éléments à prendre la largeur dont ils ont besoin pour leur contenu. Le texte pourrait changer quoi que ce soit. Jusque là, tout va bien. Mais si je donne le dernier élément d'un display: block; position: absolute, WebKit rend cet écart (blanc par exemple).

position:absolue de display:table-cell éléments causes WebKit pour le rendu de l'écart

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;
}

Ici est un Violon.

Je ne suis pas sûr si c'est un bug dans WebKit, parce que le positionnement absolu d'un élément à l'intérieur d'un tableau peut ne pas être le comportement par défaut. D'autre part, display: none fonctionne comme je l'espère. Ne devrait pas l'espace de la consommation de 0 dans les deux cas?

Quelqu'un sait d'un bug dans WebKit ou quelqu'un a une idée de comment faire pour éviter cette lacune?

Je ne comprends pas pourquoi vous forcez un non-ordonnée de la liste d'affichage:tableau? Mieux utiliser des float, display:inline ou display:inline-block.
Parce que je veux que le menu à l'échelle de la même largeur, peu importe ce que le texte des articles.
Je comprends le problème existe toujours, donc je suppose que ce n'est pas une option de déplacer simplement la couleur d'arrière-plan sur le <li> plutôt que <ul>?
malheureusement pas. Le problème, c'est que les modifications de mise en page (oui, c'est juste 2 px, mais je ne peux pas accepter que... et oui, la doc prétend que c'est normal 😉 ). Seule une solution de contournement qui en résulte dans exactement la même mise en page comme Joshs ne ferait l'affaire.

OriginalL'auteur Linus Caldwell | 2013-03-11