60 votes

premier enfant et dernier enfant avec IE8

J'ai quelques css pour ajuster les choses dans mon tableau.

C'est ici:

 .editor td:first-child
{
    width: 150px; 
}

.editor td:last-child input,
.editor td:last-child textarea
{
    width: 500px;
    padding: 3px 5px 5px 5px;
    border: 1px solid #CCC; 
}
 

Cela fonctionne avec Firefox, Safari et Chrome mais pas (pour le moment) avec IE8.

Je sais que le problème vient du premier et du dernier enfant, mais je ne suis pas un expert.

Une idée de comment je peux le fixer?

PS: J'ai ajouté <!doctype html> en plus de mon document html mais rien n'a changé.

68voto

BoltClock Points 249668

Si votre table ne comporte que 2 colonnes, vous pouvez facilement atteindre le deuxième td avec le sélecteur frère associé, ce que IE8 prend en charge avec :first-child :

 .editor td:first-child
{
    width: 150px; 
}

.editor td:first-child + td input,
.editor td:first-child + td textarea
{
    width: 500px;
    padding: 3px 5px 5px 5px;
    border: 1px solid #CCC; 
}
 

Sinon, vous devrez utiliser une bibliothèque de sélecteurs JS telle que jQuery ou ajouter manuellement une classe au dernier td , comme suggéré par James Allardice .

34voto

James Allardice Points 81162

Depuis :last-child est un CSS3 pseudo-classe, il n'est pas pris en charge dans IE8. Je crois :first-child est pris en charge, comme il est défini dans le CSS2.1 cahier des charges.

Une solution possible est tout simplement de donner à l'enfant un nom de classe et le style de la classe.

Une autre possibilité serait d'utiliser le JavaScript. jQuery rend particulièrement facile car il fournit un :last-child pseudo-classe qui devrait fonctionner dans IE8. Malheureusement, ce qui pourrait entraîner un éclair de non stylé contenu alors que le DOM.

3voto

blues_driven Points 111

Si vous souhaitez continuer à utiliser des sélecteurs CSS3 mais que vous devez prendre en charge des navigateurs plus anciens, je vous conseillerais d'utiliser un polyfill tel que Selectivizr.js

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