28172 sujets

CSS et mise en forme, CSS3

Salut,
J'ai un problème qui est sûrement simple mais que je n'arrive pas du tout à résoudre.
J'ai un formulaire:

<form method="post" ACTION="index.php?rub=validation_contact">
<div class="champ_form">
  <label for="mail">Adresse e-Mail :</label>
  <input type="text" name="mail" id="mail" />
</div>
<div class="champ_form">
  <label for="adresse">Adresse* :</label>
  <textarea name="adresse" id="adresse" rows="2" cols="50"></textarea>
</div>
<div class="champ_form">
  <label for="cp">Code Postal* :</label>
  <input type="text" name="cp" id="cp" />
</div>
</form>


et voici mon css:

.champ_form {
  width: 100%;
  clear: left;
  padding: 5px 0 5px 0;
  position: relative;
	}

.champ_form label {
	float: left;
	width: 30%;
	}

.champ_form input[type=text], textarea  {
	position: absolute;
	right: 0;
	width: 70%;
	}


et le problème est que le div qui englobe le label et son input (ou textarea) ne fait pas la hauteur nécessaire pour l'englober correctement (le textarea dépasse pour chevauche le input d'en bas par exemple). J'ai essayé plein de choses mais je suis à court d'idées... Smiley ohwell

Est-ce que vous voyez une solution?

Merci d'avance!
Modifié par samax.tripwood (25 Nov 2008 - 15:26)
Bonjour et bienvenu sur le Forum

Tout d'abord, je conseillerais l'emploi de paragraphe en lieu et place des <div>.
Ensuite, je ne comprends pas l'utilité des position : un simple float sur les label afin qu'il se placent à gauche des input devrait suffire.

Non ? Smiley rolleyes
Salut,
merci pour ta réponse, ça venait bien des div Smiley cligne
Bizarrement ils ne prenaient pas en compte la hauteur des champs, alors que p le fait très bien.