J'essaie d'émuler des pseudo-classes et des sélecteurs d'attributs dans Internet Explorer 6 et 7, tels que :focus
, :hover
ou [type=text]
. Jusqu'à présent, j'ai réussi à ajouter un nom de classe aux éléments concernés:Émulation de pseudo-classes discrètes et de sélecteurs d'attribut dans IE
$("input, textarea, select")
.hover(function(){
$(this).addClass("hover");
}, function(){
$(this).removeClass("hover");
})
.focus(function(){
$(this).addClass("focus");
})
.blur(function(){
$(this).removeClass("focus");
});
$("input[type=text]").each(function(){
$(this).addClass("text");
});
Cependant, je suis toujours obligé de dupliquer sélecteur dans mes feuilles de style:
textarea:focus, textarea.focus{
}
Et, pour les choses pires, IE6 semble ignorer tous les sélecteurs quand il trouve un attribut:
input[type=text], input.text{
/* IE6 ignores this */
}
Et, bien sûr, ne tient pas compte IE6 sélecteurs avec plusieurs classes:
input.text.focus{
/* IE6 ignores this */
}
Je suis susceptible de finir avec ce gâchis:
input[type=text]{
/* Rules here */
}
input.text{
/* Same rules again */
}
input[type=text]:focus{
}
input.text_and_focus{
}
input.text_and_hover{
}
input.text_and_focus_and_hover{
}
Ma question: est-il possible de lire les règles ou style calculé définies pour un sélecteur CSS et l'appliquer à certains éléments, donc je dois seulement maintenir un ensemble de CSS standard?
J'ai utilisé cette bibliothèque il y a quelques années et c'est un peu exagéré. Il fonctionne très lentement car il est très ambitieux: il corrige des bugs de rendu et émule beaucoup de choses CSS3 dont je n'ai pas vraiment besoin. Considérant que j'utilise déjà jQuery pour la fonctionnalité du site, je suppose que IE6 pauvre ne serait pas en mesure de faire face à cela. Merci pour le conseil, de toute façon. Je pensais que IE7 avait été abandonné et je suis content de voir que ce n'est pas le cas. –
J'ai utilisé 'IE7.js' avec' jQuery' avant et si votre serveur n'est pas très lent, ça marche bien - je veux dire, vous avez moins de travail, votre site est compatible IE6 et le monde est à nouveau sympa :) –