28172 sujets

CSS et mise en forme, CSS3

Bonjour, une petite surprise sur IE7, j'ai des messages d'erreurs contenant un background sur mes formulaires, ces messages n'apparaissent que quand il y a une erreur, mais les background eux, sont visible même quand le message d'erreur n'apparait pas !!!

J'ai essayé 2 façons d'écrire le CSS, mais rien n'y fait :

#login_form .error_right:not(:empty):before {
    content: url("nok.png");
    padding-right: 5px;
    float:right;
}

#login_form .error_right {
    background: url("nok.jpg") no-repeat scroll left top transparent;
    padding-left: 17px;
    float:right;
}


A part l'intégrer en balise image dans le HTML en conditionnel IE7, ce qui ne serait pas très léger...je ne vois pas quoi essayer !

Des idées ? Smiley confus
Administrateur
Bonjour,

Aucun des sélecteurs :not(), :empty et :before ne sont reconnus par IE7, il est donc normal que seule la 2è règle soit prise en compte.
Ni si IE8 d'ailleurs, c'est pourquoi j'ai remplacé cette méthode par un background normal ! sur IE8, pas de problème, sur IE7 le background apparait même quand la div n'apparait pas Smiley decu
Administrateur
Difficile de deviner, cela peut dépendre du contexte, de HasLayout, etc.
Tu as essayé de donner une largeur au div, un zoom:1, un position: relative ?
Oui j'ai essayé, mais rien... Smiley ohwell

Ou alors ça vient du code python et dans ce cas, il faut que je demande au développeur Smiley decu

<div class="field"
                   tal:define="error python:errors.get(ac_name, None);"
                   tal:attributes="class python:test(error, 'field error', 'field')">

                  <label
                         tal:attributes="for ac_name" class="label_formulaire">Identifiant</label>

                  <div tal:content="error" class="error_right">Validation error output</div>
            
                  <input type="text"
                         size="15"
                      
                         tal:attributes="name ac_name;
                                         id ac_name;
                                         value python: request.get(ac_name,
                         '');"
                         />
             
     </div>


#login_form .error_right{
    background: url("nok.jpg") no-repeat scroll left top transparent;
    padding-left: 17px;
    float: right;
    width: 153px;
}