Bonsoir !
J'essaye d'améliorer le rendu de mes formulaires (comme beaucoup) et j'avoue me heurter à un petit soucis technique ...
Le fonctionnement est simple (exemple sur un input type text) :
- une image en fond d'input en no-repeat car y figure le bord gauche de l'input aux coins arrondis
- un div qui vient se coller à sa droite afin de mettre un fond image pour le bord droit toujours aux coins arrondis.
- Un :hover sur le <dd> afin de faire changer l'image de fond de l'input et du bord droit
- Un :focus sur l'input afin de changer l'image de fond de l'input lorsque celui-ci est activé (= quand on entre du texte dedans)
Seulement voilà, j'arrive bien à faire changer l'image de fond de l'input sous l'état :focus mais je ne parviens pas à trouver la syntaxe adéquate pour qu'en même temps l'image de fond du bord droit change également ...
Je bosse en xhtml 1.0 STRICT et voici le code correspondant :
Merci par avance pour votre aide et bonne fin de week end
PS: Ne faites pas attention à ma méthode pour rétablir les alignements avec clear: both;, je suis bien conscient qu'un div n'ai pas ce qu'il se fait de mieux mais j'ai quelques soucis de rendu parfois avec la méthode <br /> et pas le temps de résoudre ce soucis.
PS2: L'option de gérer ça avec JS ne m'intéresse pas ici car ça sera la finalité (l'année prochaine certainement), on a essayé d'intégrer Niceforms dans le moteur ce qui s'est pas trop mal déroulé mais je me heurte à de trop grosses différences d'affichage sous IE pour rendre possible un débogage vis à vis du temps restant avant mise en ligne.
J'essaye d'améliorer le rendu de mes formulaires (comme beaucoup) et j'avoue me heurter à un petit soucis technique ...
Le fonctionnement est simple (exemple sur un input type text) :
- une image en fond d'input en no-repeat car y figure le bord gauche de l'input aux coins arrondis
- un div qui vient se coller à sa droite afin de mettre un fond image pour le bord droit toujours aux coins arrondis.
- Un :hover sur le <dd> afin de faire changer l'image de fond de l'input et du bord droit
- Un :focus sur l'input afin de changer l'image de fond de l'input lorsque celui-ci est activé (= quand on entre du texte dedans)
Seulement voilà, j'arrive bien à faire changer l'image de fond de l'input sous l'état :focus mais je ne parviens pas à trouver la syntaxe adéquate pour qu'en même temps l'image de fond du bord droit change également ...
Je bosse en xhtml 1.0 STRICT et voici le code correspondant :
<form method="">
<fieldset>
<dl>
<dt><label for="">Label</label></dt>
<dd>
<input class="input_text1" type="text" name="" />
<div class="input_text1_right"></div>
<div class="clearfloat"></div>
</dd>
</dl>
</fieldset>
</form>
dt {
display block;
}
.input_text1 {
height: 24px;
float: left;
background: url(img_bg_and_left.png) no-repeat top left;
}
.input_text1_right {
width: 2px;
height: 24px;
float: left;
background: url(img_right.png) no-repeat;
}
dd:hover .input_text1 {
background: url(img_bg_and_left_hover.png) no-repeat top left;
}
dd:hover .input_text1_right {
background: url(img_right_focus.png) no-repeat;
}
.input_text1:focus {
background: url(img_bg_and_left_focus.png) no-repeat top left;
}
Merci par avance pour votre aide et bonne fin de week end
PS: Ne faites pas attention à ma méthode pour rétablir les alignements avec clear: both;, je suis bien conscient qu'un div n'ai pas ce qu'il se fait de mieux mais j'ai quelques soucis de rendu parfois avec la méthode <br /> et pas le temps de résoudre ce soucis.
PS2: L'option de gérer ça avec JS ne m'intéresse pas ici car ça sera la finalité (l'année prochaine certainement), on a essayé d'intégrer Niceforms dans le moteur ce qui s'est pas trop mal déroulé mais je me heurte à de trop grosses différences d'affichage sous IE pour rendre possible un débogage vis à vis du temps restant avant mise en ligne.