IE CSS bug: les bordures du tableau montrant div avec visibility: hidden, position: absolute

La question

J'ai un <div> sur une page qui n'est initialement masqué avec un visibility: hidden; position: absolute. Le problème est que si un <div> cachés de cette façon, contient une table qui utilise border-collapse: collapse et a une frontière définie sur les cellules, que la frontière affiche toujours "à travers" l'caché <div> sur IE.

Essayez vous-même en exécutant le code ci-dessous sur IE6 ou IE7. Vous devriez obtenir une page blanche, mais au lieu de cela, vous verrez:

le texte d'alt http://img.skitch.com/20090110-enuxpb5aduqceush46dyuf4wk7.png

Solution de contournement Possible

Depuis ce qui se passe sur IE et pas sur les autres navigateurs, je suppose que c'est un IE bug. Une solution consiste à ajouter le code suivant qui remplacera la frontière:

.hide table tr td {
    border: none;
}

Je me demande:

  • Est-ce un connu IE bug?
  • Est-il une solution plus élégante/solution de contournement?

Le code

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
        <style type="text/css">

            /* Style for tables */
            .table tr td {
                border: 1px solid gray;
            }
            .table {
                border-collapse: collapse;
            }

            /* Class used to hide a section */
            .hide {
                visibility: hidden;
                position: absolute;
            }

        </style>
    </head>
    <body>
        <div class="hide">
            <table class="table">
                <tr>
                    <td>Gaga</td>
                </tr>
            </table>
        </div>
    </body>
</html>

OriginalL'auteur avernet | 2009-01-10