Bonjour,

J'avais laissé faire mon design par une boite, mais j'ai besoin d'une modification sur la login box.

J'ai contacté ladite société qui me demande 80 euros pour cette modification, ce que je trouve exagéré, surtout qu'un pro le fera en 10 min je pense...

J'ai déjà agrandi en largeur la box, rétréci et replacé les 2 "input".

Je souhaiterai pouvoir ajouter du texte devant les input...en l'occurrence "pseudo" et "mot de passe".

J'ai isolé la box a partir de http://www.voilou.fr
Voici ma page test qui contient donc mon code: http://voilou.fr/testbox/test.html

Le code css:

<style>
p,form,h2{ margin:0; padding:0 }

p{ font-family:"Trebuchet MS", Helvetica, sans-serif; font-size:13px; line-height:19px; margin-bottom:5px; color:#666; }

.btnbox_bg{ width:auto; float:right; padding-right:15px;}
.textbox{ background:none; border:none; width:140px; padding:0 2px;}

.btnbox_bg .btn{background:url(images/left1.jpg) no-repeat left top; overflow:visible; float:left; font-size:13px; font-weight:bold; padding-top:5px; padding-left:15px; padding-right:18px; padding-bottom:14px;  color:#fff; border:none; }

.btnbox_bg span{  background:url(images/right1.jpg) no-repeat right top; float:left; border:1px solid #f00; color:#fff; border:none; padding-left:0px; padding-bottom:0px;  }

.rightbar_box_bottom form{ padding-left:100px;}

.rightbar_box_bg{background:url(images/rightbar_box_bg2.jpg) repeat-y left top; float:left; margin-bottom:5px; width:268px;}

.rightbar_box_top{background:url(images/rightbar_box_top2.jpg) no-repeat left top; float:left; width:268px;}

.rightbar_box_bottom{background:url(images/rightbar_box_bottom2.jpg) no-repeat left bottom; float:left; width:260px; padding:3px 4px;}

h2.b{ background:url(images/right_b_h2bg.jpg) no-repeat left top; padding:6px 0px 8px 37px;}

h2.bl{ background:url(images/right_bl_h2bg.jpg) no-repeat left top; padding:6px 0px 8px 37px;}

h2.login{ background:url(images/login_h2bg.jpg) no-repeat left top; padding:6px 0px 20px 30px; font-family:"Trebuchet MS", Helvetica, sans-serif; font-weight:bold; color:#FFFFFF; font-size:14px;}

.textbox_bg{ background:url(images/textbox_bg2.jpg) no-repeat left 4px; width:145px; padding:8px 3px; *padding:3px 3px; float:left}
</style>


Le code html:

<div class="rightbar_box_bg">
    <div class="rightbar_box_top">
      <div class="rightbar_box_bottom">
        <h2 class="login">CONNEXION</h2>     
        <form  action="">
          <div class="textbox_bg">
            <input type="text" class="textbox" />
          </div>
          <div class="textbox_bg">
            <input type="password" class="textbox" />
          </div>
          <div class="btnbox_bg" align="right">
            <span><input type="button" value="Connexion" class="btn"/></span>
          </div>
        </form>
      </div>
    </div>
  </div>


J'avais trouvé des exemple en ajoutant un label, mais pas moyen de faire ce que je veux, je trouve que le code css actuel en me laisse que peu de manœuvre non?

J'ai tenté ceci mais du coup les input ne s'affichent plus..(http://voilou.fr/testbox/test3.html)
textbox_bg{width:180px;}
input.textbox_bg{ background:url(images/textbox_bg2.jpg) no-repeat left 4px; width:145px; padding:8px 3px; *padding:3px 3px; float:left}
label.textbox_bg{ width:20px;}


Puis en dernier (http://voilou.fr/testbox/test2.html):
.textbox_bg{ background:url(images/textbox_bg2.jpg) no-repeat left 4px; width:200px; /*width:145px;*/ padding:8px 3px; *padding:3px 3px; float:left}
label.textbox_bg{ width:20px;}


Code html
<div class="rightbar_box_bg">
   <div class="rightbar_box_top">
     <div class="rightbar_box_bottom">
        <h2 class="login">CONNEXION</h2>     
        <form  action="">
        <div class="textbox_bg">
          <label for"pseudo">Pseudo</label><input type="text" class="textbox" />
        </div>
        <div class="textbox_bg">
          <label for"mdp">Mot de passe</label><input type="password" class="textbox" />
        </div>
        <div class="btnbox_bg" align="right">
          <span><input type="button" value="Connexion" class="btn"/></span>
        </div>
        </form>
     </div>
   </div>
</div>


Le prob, d'après ce que je comprend, c'est que textbox contient la taille du input et que textbox_bg contient le fond du input pour donner un effet d'ombre...

Merci pour votre aide Smiley smile
Je ne suis pas sûre à 100% d'avoir bien compris ce que tu voulais faire, mais ton problème vient peut-être d'une erreur dans l'utilisation de <label>.


<label for[#red]=[/#]"pseudo">Pseudo</label><input type="text" class="textbox" [#red]id="pseudo"[/#] /> 


En effet pour que le label soit lié à son input il faut que celui-ci ait un id de même valeur que l'attribut for du label Smiley smile
Hello, tu as raison 80 euro pour faire sa est un peu abusé.


<div class="rightbar_box_bg">
<div class="rightbar_box_top">
<div class="rightbar_box_bottom">
<h2 class="login">CONNEXION</h2>
<form action="">
<span style="color:grey;text-align:left;">Login :</span><div class="textbox_bg">
<input type="text" class="textbox" />
</div>
<span style="color:green;">Mot de passe :</span> <div class="textbox_bg">
<input type="password" class="textbox" />
</div>
<div class="btnbox_bg" align="right">
<span><input type="button" value="Connexion" class="btn"/></span>
</div>
</form>
</div>
</div>
</div>


Je sais pas si sa marche mais sa doit être un truc du genre. Remplace dans le style="" les attributs pour obtenir ce que tu veux (tu peux aussi le mettre dans le css pour avoir un code plus propre).
Merci pour ta contribution "patate40" Smiley smile

En fait j'ai maintenant le code suivant :

<style>
p,form,h2{ margin:0; padding:0 }

p{ font-family:"Trebuchet MS", Helvetica, sans-serif; font-size:13px; line-height:19px; margin-bottom:5px; color:#666; }

.btnbox_bg{ width:auto; float:right; padding-right:15px;}
.textbox{ background:none; border:none; width:140px; padding:0 2px;}

.btnbox_bg .btn{background:url(images/left1.jpg) no-repeat left top; overflow:visible; float:left; font-size:13px; font-weight:bold; padding-top:5px; padding-left:15px; padding-right:18px; padding-bottom:14px;  color:#fff; border:none; }

.btnbox_bg span{  background:url(images/right1.jpg) no-repeat right top; float:left; border:1px solid #f00; color:#fff; border:none; padding-left:0px; padding-bottom:0px;  }

.rightbar_box_bg{background:url(images/rightbar_box_bg2.jpg) repeat-y left top; float:left; margin-bottom:5px; width:268px;}

.rightbar_box_top{background:url(images/rightbar_box_top2.jpg) no-repeat left top; float:left; width:268px;}

.rightbar_box_bottom{background:url(images/rightbar_box_bottom2.jpg) no-repeat left bottom; float:left; width:260px; padding:3px 4px;}

h2.login{ background:url(images/login_h2bg.jpg) no-repeat left top; padding:6px 0px 20px 30px; font-family:"Trebuchet MS", Helvetica, sans-serif; font-weight:bold; color:#FFFFFF; font-size:14px;}

.textbox_bg{ background:url(images/textbox_bg2.jpg) no-repeat left 4px; width:145px; padding:8px 3px; *padding:3px 3px; float:left}
</style>


<div class="rightbar_box_bg">
<div class="rightbar_box_top">
<div class="rightbar_box_bottom">
<h2 class="login">CONNEXION</h2>
<form action="">
<span style="color:grey; display:block; width:50px;">Login :</span>
<div class="textbox_bg"><input type="text" class="textbox" name="pseudo" /></div>

<span style="color:green; display:block; width:100px;">Mot de passe :</span> 
<div class="textbox_bg"><input type="password" class="textbox" name="mdp" /></div>

<div class="btnbox_bg" align="right">
<span><input type="button" value="Connexion" class="btn"/></span>
</div>
</form>
</div>
</div>
</div> 


Le résultat : http://voilou.fr/testbox/test2.html

Ce n'est pas toujours celui escompté...mais on s'en approche Smiley smile
Hello,

Change float: left; par float: right;

.textbox_bg {
-moz-background-clip:border;
-moz-background-inline-policy:continuous;
-moz-background-origin:padding;
background:transparent url(images/textbox_bg2.jpg) no-repeat scroll left 4px;
float:right;
padding:8px 3px;
width:145px;
}


et

il faut que tu retire des <div> dans ton formulaire. que tu ajout un <br>

<form action="">
<span style="color: grey; width: 50px; display: inline;">Login :</span> 
<input type="text" name="pseudo" class="textbox"><br>

<span style="color: green; width: 100px; display: inline;">Mot de passe :</span> 
<input type="password" class="textbox" name="mdp">

<div align="right" class="btnbox_bg">
<span><input type="button" class="btn" value="Connexion"></span>
</div>
</form>


J'ai regardez ca super rapidement... il faudra que tu refasse un peu ta mise en page et que tu ré-aligne tes 2 zone de saisie.

Charly
Modifié par Chum (22 Feb 2010 - 09:13)
Enleve le display:block; que tu a rajouté au span qui provoque le changement du comportement de cette balise ( elle devient un block ce qu'on ne veut pas ).

Si vraiment tu veux utiliser un block, il faut lui préférer la balise div qui est faite pour sa. Ce qui nous donnera :


<div class="rightbar_box_bg"> 
<div class="rightbar_box_top"> 
<div class="rightbar_box_bottom"> 
<h2 class="login">CONNEXION</h2> 
<form action=""> 
<div style="color:grey; float:left; width:80px;border:1px solid black; padding:2px;">Login :</div> 
<div class="textbox_bg"><input type="text" class="textbox" name="pseudo" /></div> 
 
<div style="color:green;float:left;">Mot de passe :</span>  
<div class="textbox_bg"><input type="password" class="textbox" name="mdp" /></div> 
 
<div class="btnbox_bg" align="right"> 
<span><input type="button" value="Connexion" class="btn"/></span> 
</div> 
</form> 
</div> 
</div> 
</div> 



Normalement, le float:left va permettre au bloc de rester a gauche de tes input. J'ai pas vraiment regarder ton code css donc sa peut ne pas marcher ...

Si sa marche ta plus qu'a mettre en forme avec les attributs dans style="..." (j'ai mis des trucs au pif pour voir ce que tu peux faire Smiley cligne )
J'avais des fautes de frappe Smiley cligne




<div class="rightbar_box_bg"> 

<div class="rightbar_box_top"> 

<div class="rightbar_box_bottom"> 

<h2 class="login">CONNEXION</h2> 

<form action=""> 

<div style="color:grey; float:left; width:80px;border:1px solid black; padding:2px;">
Login :
</div> 

<div class="textbox_bg"><input type="text" class="textbox" name="pseudo" /></div> 

 

<div style="color:green;float:left;">
Mot de passe :
</div>  

<div class="textbox_bg"><input type="password" class="textbox" name="mdp" /></div> 

 

<div class="btnbox_bg" align="right"> 

<span><input type="button" value="Connexion" class="btn"/></span> 

</div> 

</form> 

</div> 

</div> 

</div> 




Salut,

je n'ai pas lu dans le détail mais de sympathiques éléments LABEL for associés à des éléments INPUT (ce qui est préconisé pour rendre les formulaires accessibles) ont été remplacés par de vilains SPAN ! C'est mal et sans intérêt puisque les 2 ont le même rendu inline par défaut ! Smiley cligne
Modifié par Heyoan (22 Feb 2010 - 10:06)
J'essayais juste de lui trouver une solution simple ... Pour utiliser un label ici, il faudrait rajouter un id dans ses input ... et connaissant ma chance je serai tombé sur un id déjà utilisé dans son css
Merci pour votre aide Smiley smile

J'ai fais un mix de vos solutions :

<style>
p,form,h2{ margin:0; padding:0 }

p{ font-family:"Trebuchet MS", Helvetica, sans-serif; font-size:13px; line-height:19px; margin-bottom:5px; color:#666; }

.btnbox_bg{ width:auto; float:right; padding-right:8px;}
.textbox{ background:none; border:none; width:140px; padding:0 2px;}

.btnbox_bg .btn{background:url(images/left1.jpg) no-repeat left top; overflow:visible; float:left; font-size:13px; font-weight:bold; padding-top:5px; padding-left:15px; padding-right:18px; padding-bottom:14px;  color:#fff; border:none; }

.btnbox_bg span{  background:url(images/right1.jpg) no-repeat right top; float:left; border:1px solid #f00; color:#fff; border:none; padding-left:0px; padding-bottom:0px;  }

.rightbar_box_bg{background:url(images/rightbar_box_bg2.jpg) repeat-y left top; float:left; margin-bottom:5px; width:268px;}

.rightbar_box_top{background:url(images/rightbar_box_top2.jpg) no-repeat left top; float:left; width:268px;}

.rightbar_box_bottom{background:url(images/rightbar_box_bottom2.jpg) no-repeat left bottom; float:left; width:260px; padding:3px 4px;}

h2.login{ background:url(images/login_h2bg.jpg) no-repeat left top; padding:6px 0px 20px 30px; font-family:"Trebuchet MS", Helvetica, sans-serif; font-weight:bold; color:#FFFFFF; font-size:14px;}

.textbox_bg{ background:url(images/textbox_bg2.jpg) no-repeat left 4px; width:137px; padding:8px 7px; *padding:3px 3px; float:left;}
.txtform { color:grey; float:left; width:95px; padding-left:6px; margin-right:6px; padding-top:4px;}
.txtformoubli { float:left; width:95px; padding-left:20px; padding-top:9px; font-size:10px;}

</style>


<div class="rightbar_box_bg">  
<div class="rightbar_box_top">  
<div class="rightbar_box_bottom">  
<h2 class="login">CONNEXION</h2>  
<form action="">  
<label for="pseudo" class="txtform">Votre pseudo</label>  
<span class="textbox_bg"><input type="text" class="textbox" name="pseudo" id="pseudo" /></span>  
 
<label for="password" class="txtform">Mot de passe</label>   
<span class="textbox_bg"><input type="password" class="textbox" name="mdp" id="password" /></span>  

<span class="txtformoubli"><a href="oubli.php">Oubli mot de passe ?</a></span>   
<div class="btnbox_bg" align="right">  
<span><input type="button" value="Connexion" class="btn"/></span>  
</div>  
</form>   
</div>  
</div>  
</div> 


Le résultat est visible ici : http://voilou.fr/testbox/test2.php

J'ai juste encore un petit problème d'affichage sous safari :

upload/27243-Capture.PNG

Le bouton connexion à la partie de gauche un peu décalé...Sur tous les autres navigateurs il s'affiche correctement Smiley decu

upload/27243-Capturefir.PNG

Le code du bouton est:

.btnbox_bg{ width:auto; float:right; padding-right:8px;}

.btnbox_bg .btn{background:url(images/left1.jpg) no-repeat left top; overflow:visible; float:left; font-size:13px; font-weight:bold; padding-top:5px; padding-left:15px; padding-right:18px; padding-bottom:14px;  color:#fff; border:none; }

.btnbox_bg span{  background:url(images/right1.jpg) no-repeat right top; float:left; border:1px solid #f00; color:#fff; border:none; padding-left:0px; padding-bottom:0px;  }


image : left1.jpg
upload/27243-left1.jpg

image: right1.jpg
upload/27243-right1.jpg

Merci
Modifié par nicolus (22 Feb 2010 - 16:53)