Un de nos clients a du mal à lire le texte en gris des contrôles désactivés de notre application Web:
Nous aimerions changer le style en un fond gris clair et un texte en noir. Malheureusement, la plupart des navigateurs (y compris IE, ce que le client utilise) ignorent l'attribut CSS color: ...
sur les contrôles désactivés. Nous ne pouvons donc pas modifier la couleur de premier plan.
Pour les zones de texte (input type="text"
), il est facile de contourner ce problème en utilisant l'attribut readonly
au lieu de l'attribut disabled
. Malheureusement, ce n'est pas une option pour les listes déroulantes (select
) ou les cases à cocher (input type="checkbox"
).
Existe-t-il une solution de contournement facile pour cela? De préférence une solution où le contrôle n'a pas besoin d'être remplacé par un autre type de contrôle? (... puisque nos contrôles sont rendus par ASP.NET)
PS: L'utilisation du sélecteur [disabled]
en CSS ne fait aucune différence.
Dans Internet Explorer 9, un support sera ajouté pour le pseudo-sélecteur :disabled
( ref ). Je ne sais pas si cela honorera la propriété "color", mais cela semble probable.
Dans les anciennes versions d'IE, vous pouvez ajuster la couleur d'arrière-plan (mais pas la couleur). Ainsi:
<style type="text/css">
select[disabled] { background-color: blue; }
</style>
Cela fonctionne dans IE 7 et IE 8. Vous ne pouvez toujours pas modifier la couleur de premier plan, mais vous pouvez modifier la couleur d'arrière-plan afin de contraster davantage avec le gris que IE lui attribue lorsque c'est désactivé.
Cela a fonctionné pour moi dans webkit et Firefox
select:disabled{
opacity: 0.6;
}
Pour ceux qui trouvent encore cela.
Ne fonctionne pas:
select[disabled] { background-color: blue; }
Travail:
select option [disabled] { background-color: blue; } will do
Cela a fonctionné pour moi
select[disabled='disabled']::-ms-value {
color: red;
}
Désolé pour mon anglais...
Ce n'est pas possible en utilisant simplement CSS, IE n'autorise pas les propriétés de changement d'une balise de sélection désactivée.
Vous pouvez essayer ce qui suit:
<style>
/*css style for IE*/
select[disabled='disabled']::-ms-value {
color: #555;
}
/*Specific to chrome and firefox*/
select[disabled='disabled'] {
color: #555;
}
</style>