75 votes

Comment changer la couleur de désactivé les contrôles html dans IE8 à l'aide de css

Je suis en train de modifier la couleur de contrôles d'entrée lorsqu'ils sont désactivés à l'aide de la css suivant.

input[disabled='disabled']{
  color: #666;     
}

Cela fonctionne dans la plupart des navigateurs, mais pas IE. Je suis en mesure de modifier les autres propriétés de style comme la couleur d'arrière-plan, la frontière de la couleur, etc... mais pas de couleur. Quelqu'un peut-il expliquer cela?

124voto

Wayne Austin Points 2124

Unfortuntely si vous utilisez le désactivé attribut, peu importe ce que vous essayez IE juste valeur par défaut la couleur du texte de gris, avec une bizarre ombre blanche...chose... mais tous les autres styles encore du travail. :-/

16voto

robocat Points 1567

J'ai eu le même problème pour <select> éléments dans IE10 et trouvé une solution qui fonctionne pour sélectionner des éléments seulement:

http://jsbin.com/ujapog/7/

Microsoft a un pseudo-élément qui permet la couleur du texte pour être modifiés:

select[disabled='disabled']::-ms-value {
    color: #000;
}

La règle doit être sur son propre, parce que sinon les autres navigateurs ignorent la règle d'ensemble en raison d'une erreur de syntaxe. Voir http://msdn.microsoft.com/en-us/library/ie/hh869604(v=vs. 85).aspx pour Internet Explorer uniquement les pseudo-éléments.

8voto

Hamid Points 921

Il n'y a aucun moyen de remplacer les styles pour désactiver="désactiver" attribut. Voici mon travail pour résoudre ce problème, une remarque, je suis seulement la sélection de boutons de soumission dans mon cas:

if ($.browser.msie) {
    $("input[type='submit'][disabled='disabled']").each(function() {
        $(this).removeAttr("disabled");
        $(this).attr("onclick", "javascript:return false;");
    });
}

4voto

Lihkinisak Points 75

J'ai eu le même problème avec textarea "désactivé" changer la couleur de police de gris. J'ai fait une solution de contournement à l'aide de "readonly" attribut au lieu de "désactivé" attribut à la balise textarea avec ci-dessous css

textarea[readonly] {
border:none; //for optional look
background-color:#000000; //Desired Background color        
color:#ffffff;// Desired text color
}

Il a travaillé pour moi comme un charme!!, je vous suggère d'essayer ce avant toute autre solution, car il est facile de remplacer "désactivé" avec "readonly" sans changer les autres parties du code.

3voto

Cold Hiller Points 41

Je Sais, ça fait un moment depuis la création de cette rubrique, mais j'ai créé cette solution de contournement, et bien... Il a travaillé pour moi! ( L'utilisation d'IE 9 )

La seule conséquence, c'est que vous ne pouvez pas sélectionner la valeur de l'entrée.

À L'Aide De Javascript:

    if (input.addEventListener)
            input.addEventListener('focus', function(){input.blur()}, true)
    if (input.attachEvent)
            input.attachEvent("onfocus", function(){input.blur()})

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