71 votes

box-shadow sur IE9 ne rend pas l'utilisation correcte du CSS, fonctionne sur Firefox, Chrome

Je suis en train de simuler un flottant modal type de boîte de chose, mais avoir un problème avec IE9 et sa zone d'ombre de la mise en œuvre.

Voici un résumé du code, je suis en utilisant ce qui peut reproduire le problème:

<html>
<head>
    <title>Sample page</title>
    <style>
        .content-holder {
            border-collapse: collapse;
        }
        .back {
            background-color: #a8c0ff;
            padding: 100px;
        }

        .inner {
            background-color: #fff;
            text-align: center;
            padding: 50px;
            box-shadow: 0px 0px 20px #000;
        }

    </style>
</head>
<body>
    <table class="content-holder">
        <tr>
            <td>
                <div class="back">
                    <div class="inner">
                        <h2>Heading</h2>
                        <p class="subtext">Some text here</p>
                        <p>More text</p>
                        <a class="button" href="#">A button</a>
                    </div>
                </div>
            </td>
        </tr>
    </table>
</body>

Il fonctionne très bien sous Firefox/Chrome, etc, mais IE9 n'affiche pas l'ombre. Je peux le changer pour un encart de l'ombre, et il semble comme il se doit, mais à l'extérieur de l'ombre continue de m'échapper.

Il quelqu'un capable de faire la lumière sur cette ombre problème?

112voto

thirtydot Points 114021

Comme l'a découvert (pas par moi) dans les commentaires, vous devez ajouter border-collapse: separate; pour l'élément box-shadow n'est pas de travailler.

Et de ma réponse originale à cette question, aussi assurez-vous d'avoir un doctype valide que la première ligne, comme <!DOCTYPE html>. Frapper la touche F12 pour afficher les Outils de développement, et assurez-vous que IE9 en mode (ou version ultérieure) est utilisé, parce que c'est nécessaire pour box-shadow de travail.

19voto

toyNN Points 180

Juste la confirmation de cette question et la 2ème avec @Arowin finale de la solution de contournement depuis sa peut-être pas non certaines personnes - ajouter border-collapse:separate; à la <div> - IE9 affiche désormais la bonne ombre lorsqu'un <div> est contenue dans un <table> avec border-collapse:collapse; ensemble. Merci!

4voto

dodortus Points 71

IE9 d'entrée au box-shadow bug solution à ce bug.

input{
box-shadow: 0px 0px 5px #3699FF;
border-collapse: separate;
}

border-collapse: separate; est ce que vous devez ajouter à résoudre ce problème sur les tables.

3voto

Johnny Darvall Points 343

J'ai eu la même question. En fait IE9 ne nécessite pas de doctype pour ces styles de travail. Ce qui est à l'origine du problème est "border-collapse:collapse" sur les tables avec de l'ombre - l'utilisation cellspacing=0, alors il fonctionne encore: bougre IE

3voto

Ronny Points 108

The border-collapse: separate; seulement partiellement résolu pour moi. Nous avons background-color ajouté les lignes (tr) et de l'ombre sous la ligne qui est sélectionnée (et augmentée).

La couleur de fond des blocs de l'ombre comme il semble être un z-index genre de problème. De toute façon, nous l'avons résolu avec la valeur rgba pour la couleur. Nous choisissons la plus foncée de la couleur des rangées et 20% pour la valeur alpha donc l'ombre underneat a pu être démontré.

table { border-collapse: séparé;}

tr:nth-child () { /*impair de couleur transparente */
 /* background-color: someothercolor; */ /*ombre de ne pas afficher thru solide de couleur */
 background-color: rgba(168,163,136,.2);
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X