08
MARS

Créez un formulaire avec des bulles d'aide en CSS3

Publié le 08/03/10 à 09h48 par DJo

Voici une méthode permettant de créer un formulaire HTML boosté en CSS3: Bords arrondis, ombres, bulles d'aides ...

Formulaire en CSS3 avec tips

Ce mini tutorial expérimental réalisé par skyrocketlabs vous expliquera comment créer un formulaire CSS3 design avec des bulles d'aide dynamiques, sans Javascript.

Le rendu est pas mal du tout, toutefois, il ne faut pas compter sur Internet Explorer pour être de la partie (Bord carrés, pas de tips ...).

Le CSS3 pourra bientôt (dans quelques années ?) remplacer les images pour toute la conception du WebDesign.

Voici le HTML:

<form id="myForm" method="post" action="#">
<fieldset>

<!-- EACH LABEL AND FORM ELEMENT IS WRAPPED IN ITS OWN DIV TO APPLY THE HOVER STYLE THAT DISPLAYS THE HIDDEN HINT -->
<div class="myName">
<label>My name:</label>
<!-- HINT IS HIDDEN BY DEFAULT -->
<p class="hint">Please include both your first & last name</p>
<input type="text" name="Name" class="textfield" />
</div>

<div class="myEmail">
<label>My email address:</label>
<p class="hint">Your email address will never be sold!</p>
<input type="text" name="EmailAddress" class="textfield" />
</div>

<!-- IT IS PROBABLY UNNECESSARY TO USE A HINT FOR A SELECT LIST SO IT'S OMITTED HERE -->
<label>I'm looking for:</label>
<select class="dropdown" name="Topic">
<option>Select...</option>
<option>A CSS3 form like this</option>
<option>A CSS3 form like this</option>
<option>A CSS3 form like this</option>
</select>

<div class="myComments">
<label>Comments:</label>
<p class="hint">Please be as specific as possible so we can serve you quickly</p>
<textarea cols="60" rows="10" class="textarea"></textarea>
</div>

<!-- A HINT ON A SUBMIT BUTTON IS PROBABLY OVERKILL BUT THIS IS JUST TO SHOW THAT IT CAN BE DONE -->
<div class="sendTip">
<p class="hint">Make sure your info is correct before sending!</p>
<input type="submit" name="Submit" value="Send message" class="btn" />
</div>

</fieldset>
</form>

Les bulles d'aides sont situées dans les balises p de classe "hint". Ces dernières sont cachées par défaut, puis seront affichées lorsque vous serez en focus sur l'un des éléments du formulaire.

Et le CSS:

fieldset {
  width: 450px;
  margin: 0;
  padding: 30px;
  background: #f0f0f0;
  border: 2px solid #d0d0d0;
  -moz-border-radius: 10px;
  -webkit-border-radius: 10px;
  border-radius: 10px; 
  -moz-box-shadow: 6px 6px 6px #ddd;
  -webkit-box-shadow: 6px 6px 6px #ddd;
  box-shadow: 6px 6px 6px #ddd;
}

label {
  display: block;
  font: bold 1.2em arial,verdana,tahoma,sans-serif;
  text-shadow: 2px 2px 2px #ccc;
  color: #000;
  margin: 0 20px 10px 0;
  padding: 0;
  clear: left;
}

/* APPLIES THE STYLE TO EACH FORM ELEMENT */

.textfield, .dropdown, .textarea {
  width: 220px;
  font: normal 1.1em arial,verdana,tahoma,sans-serif;
  color: #666;
  margin: 0 0 30px 0;
  padding: 9px 14px;
  background: #f2f2f2;
  border: 2px solid #d0d0d0;
  -moz-border-radius: 20px;
  -webkit-border-radius: 20px;
  border-radius: 20px;  
  -moz-box-shadow: 4px 4px 4px #ddd;
  -webkit-box-shadow: 4px 4px 4px #ddd;
  box-shadow: 4px 4px 4px #ddd;
}

/* OPTIONAL SET WIDTH FOR THE SELECT LIST */

.dropdown {
  width: 250px;
}

/* OPTIONAL SET WIDTH FOR THE TEXTAREA */

.textarea {
  width: 410px;
  -moz-border-radius: 10px;
  -webkit-border-radius: 10px;
  border-radius: 10px; 
}

/* CHANGE THE STYLE WHEN THE FORM ELEMENT IS CLICKED */

input:focus, select:focus, .textarea:focus {
  background: #fff;
  border: 2px solid #ddd;
  -moz-box-shadow: 2px 1px 1px #ddd;
  -webkit-box-shadow: 2px 1px 1px #ddd;
  box-shadow: 2px 1px 1px #ddd;
  outline: none;
}

/* THE NAMES FOR EACH OF THE FORM ELEMENT DIVS WHICH AUTOMATICALLY HIDES THE TIPS BY DEFAULT */

div.myName p.hint, div.myEmail p.hint, div.myComments p.hint, div.sendTip p.hint {
  display: none;
}  

/* WHEN EACH DIV IS HOVERED, THE TIP IS DISPLAYED */

div.myName:hover > p.hint, div.myEmail:hover > p.hint, div.myComments:hover > p.hint, div.sendTip:hover > p.hint  {
  position: absolute;
  display: block;
  font: bold 0.8em arial,verdana,tahoma,sans-serif;
  text-shadow: none;
  color: #000;
  margin: 0 0 0 265px;
  padding: 10px 15px;
  background: #ffff80;
  border: 2px solid #f7de35;
  -moz-border-radius: 20px;
  -webkit-border-radius: 20px;
  border-radius: 20px;   
  -moz-box-shadow: 4px 4px 4px #ddd;
  -webkit-box-shadow: 4px 4px 4px #ddd;
  box-shadow: 4px 4px 4px #ddd;  
}

/* CHANGES THE LEFT MARGIN ON THE TEXTAREA TIP, FOR BALANCE */

div.myComments:hover > p.hint {
  margin: 2px 0 0 350px;
}

/* CHANGES THE LEFT MARGIN ON THE SUBMIT BUTTON TIP, FOR BALANCE */

div.sendTip:hover > p.hint {
  margin: 2px 0 0 150px;
}

.btn {
  display: block;
  font: bold 1.1em arial,verdana,tahoma,sans-serif;
  color: #000;
  text-decoration: none;
  margin: 0;
  padding: 9px 11px 8px 11px;
  background: #f2f2f2 url(../img/submit-backgr.png) repeat-x;
  border: 2px solid #d0d0d0;
  -moz-border-radius: 20px;
  -webkit-border-radius: 20px;
  border-radius: 20px;  
  -moz-box-shadow: 4px 4px 4px #ddd;
  -webkit-box-shadow: 4px 4px 4px #ddd;
  box-shadow: 4px 4px 4px #ddd;  
}

.btn:hover, .btn:focus {
  color: #fff;
  background: #f2f2f2 url(../img/submit-hover-backgr.png) repeat-x; 
  border: 2px solid #888;
  -moz-box-shadow: 2px 2px 2px #ddd;
  -webkit-box-shadow: 2px 2px 2px #ddd;
  box-shadow: 2px 2px 2px #ddd;  
}

 

Sympa comme rendu non ?

Démo

Site Officiel

Baraguiné par tidams le 08/03/10 à 10h14
tidams via Twitter
Pas mal le résultat en effet !
Baraguiné par superg2 le 08/03/10 à 10h15
superg2 sur La Ferme du Web
j'avoue, sympa !
le CSS3 me semble de plus en plus utilisé dans tutos/sites web, malgré sa non-officialisation, n'est-ce pas trop dangereux de le mettre en avant autant?
Baraguiné par DJo le 08/03/10 à 10h18
DJo sur La Ferme du Web
Il est vrai qu'il est bon de préciser que ces tutos sont donnés plus à titre expérimentaux que des ressources à mettre en production.

Ajouter un Commentaire

Pour poster un commentaire, vous devez être identifié. Vous pouvez choisir parmi ces trois méthodes d'identification:

Compte la Ferme du Web

Identifiez-vous
Inscrivez-vous

Compte Facebook

Compte Twitter

Connexion avec votre compte twitter
Rechercher sur la Ferme du web