2010-05-24 9 views
1

Je sais, je connais bien IE6? Eh bien, peu importe la force de l'argument - je dois s'il vous plaît IE6 pour le moment.Impossible de styler le champ de saisie dans IE6, Pourquoi?

J'ai un champ de saisie de texte. Je devais styliser les couleurs de police et d'arrière-plan. Mais je ne peux pas obtenir IE6 pour afficher les changements que je modifie. Voici mon balisage et css.

<style> 
    input[readonly='readonly'], input.readonly { 
    color:red !important; 
    background:#EBEBE4 !important; 
    border:solid 1px #7F9DB9 !important; 
    cursor:default; 
} 
</style> 

et voici ma forme.

<form name="mainform" method="post" action="/link.aspx" id="mainform"> 
    <div class="section"> 
     <label for="shipFirstName">First Name:<abbr title="Required field">*</abbr></label> 
     <input type="text" name="shipFirstName" id="shipFirstName" value="Rich" readonly='readonly' class='readonly' maxlength="13" /> 
     <label for="shipFirstName">Last Name:<abbr title="Required field">*</abbr></label> 
     <input type="text" name="shipLastName" id="shipLastName" value="Sturim" readonly='readonly' class='readonly' maxlength="26" /> 
    </div> 
</form> 

Je sais que le problème réside dans les sélecteurs

input[readonly='readonly'], input.readonly 

Mais je ne sais pas ce que je dois faire pour obtenir IE6 reconnaître la classe « lecture seule ».

Des idées?

Répondre

4

IE6 est perturbé par le sélecteur input[readonly='readonly'] et traitera cette règle entière comme une erreur de syntaxe. Vous devrez créer deux règles différentes pour le faire fonctionner:

<style> 
    input[readonly='readonly'] { 
    color:red !important; 
    background:#EBEBE4 !important; 
    border:solid 1px #7F9DB9 !important; 
    cursor:default; 
} 
    input.readonly { 
    color:red !important; 
    background:#EBEBE4 !important; 
    border:solid 1px #7F9DB9 !important; 
    cursor:default; 
} 
</style> 
+0

parfait - merci Martin! – rsturim

+0

Je devrais mentionner, la première règle est évidemment superflue dans ce cas particulier. Je viens de copier ceci à partir d'une situation similaire où la classe 'readonly' est ajoutée avec un script spécifique à IE6, auquel cas il devient nécessaire de dupliquer la règle. – Martin

+0

Merci Martin, la règle des règles séparées m'a jeté. Dieu est IE6 jamais un PITA! – mdgrech

1

Essayez d'utiliser

input[readonly] { 
    // stuff 
} 
0

IE6 ne supporte pas les sélecteurs d'attribut, je pense que vous avez juste besoin de se débarrasser de input[readonly='readonly'], cela va probablement résoudre votre problème.

2 solutions alternatives:

  • Ajouter un attribut de classe à votre input (comme vous l'avez fait)
  • utilisation avec Javascript.
Questions connexes