[CSS] alignement label/input
Résolu/Fermé
Miloute
-
5 févr. 2008 à 10:20
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 - 5 févr. 2008 à 17:00
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 - 5 févr. 2008 à 17:00
A voir également:
- Css label input
- No video input ✓ - Forum Matériel & Système
- Input signal out of range change settings to 1600x900-60hz - Forum Windows
- Trait css ✓ - Forum CSS
- Label printer logiciel - Télécharger - Outils professionnels
- Css lien non souligné - Astuces et Solutions
21 réponses
Dalida
Messages postés
6728
Date d'inscription
mardi 14 mai 2002
Statut
Contributeur
Dernière intervention
11 janvier 2016
921
5 févr. 2008 à 10:46
5 févr. 2008 à 10:46
re,
je viens de tester, ma solution fonctionne.
par ailleurs les tableaux ne sont pas censés servir à la mise en page et les <div> sont moins corrects que les <label>.
je viens de tester, ma solution fonctionne.
p { line-height:4em; vertical-align:middle; }
par ailleurs les tableaux ne sont pas censés servir à la mise en page et les <div> sont moins corrects que les <label>.
Scalpweb
Messages postés
1467
Date d'inscription
samedi 13 mars 2004
Statut
Membre
Dernière intervention
5 mai 2010
43
5 févr. 2008 à 13:38
5 févr. 2008 à 13:38
Ceci me parait correspondre tout à fait :
Je l'ai copier coller plusieurs fois pour te donner un aperçu.
<label for="nom" style="background: red; float: left;">Nom : </label> <div ><input type="text" name="nom" /></div> <label for="nom" style="background: red; float: left;">Nom : </label> <div ><input type="text" name="nom" /></div> <label for="nom" style="background: red; float: left;">Nom : </label> <div ><input type="text" name="nom" /></div> <label for="nom" style="background: red; float: left;">Nom : </label> <div ><input type="text" name="nom" /></div>
Je l'ai copier coller plusieurs fois pour te donner un aperçu.
Merci je vais essayer de faire quelque chose avec ça!
Par contre, je croyais que depuis l'apparation des CSS, les tableaux ne devaient pas être utilisé pour faire de la mise en page ?
Par contre, je croyais que depuis l'apparation des CSS, les tableaux ne devaient pas être utilisé pour faire de la mise en page ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Scalpweb
Messages postés
1467
Date d'inscription
samedi 13 mars 2004
Statut
Membre
Dernière intervention
5 mai 2010
43
5 févr. 2008 à 16:34
5 févr. 2008 à 16:34
Ben en fait je t'avoues que je sais même pas, j'ai jamais commencé de topic...
Au pire c'est pas bien grave...
Au pire c'est pas bien grave...
Scalpweb
Messages postés
1467
Date d'inscription
samedi 13 mars 2004
Statut
Membre
Dernière intervention
5 mai 2010
43
5 févr. 2008 à 11:07
5 févr. 2008 à 11:07
Je sais bien que le W3C déconseille la mise en page en tableau.
Cependant, dans certains cas, il faut bien avouer qu'on gagne du temps à le faire ainsi.
Si non, tu peux reprendre ma première solution et essayer d'ajouter un vertical-align:middle; sur le Div contenant les Input.
Et tu peux aussi très bien reprendre cette solution en changeant la première div par un label mais en lui appliquant le même CSS...
Cependant, dans certains cas, il faut bien avouer qu'on gagne du temps à le faire ainsi.
Si non, tu peux reprendre ma première solution et essayer d'ajouter un vertical-align:middle; sur le Div contenant les Input.
Et tu peux aussi très bien reprendre cette solution en changeant la première div par un label mais en lui appliquant le même CSS...
Dalida
Messages postés
6728
Date d'inscription
mardi 14 mai 2002
Statut
Contributeur
Dernière intervention
11 janvier 2016
921
5 févr. 2008 à 14:23
5 févr. 2008 à 14:23
ce qui mets le bronx pour l'alignement vertical c'est le <input> sur plusieurs lignes.
j'ai trouvé une solution qui me parait honnête mais bien évidement IE ne sait pas le traiter.
j'ai ajouté des <div> qui permettent un affichage semblable. il y a des espacements inexpliqués mais en faisant une fausse colonne sur les <div> ou le <form> ça doit pouvoir se masquer.
j'ai trouvé une solution qui me parait honnête mais bien évidement IE ne sait pas le traiter.
j'ai ajouté des <div> qui permettent un affichage semblable. il y a des espacements inexpliqués mais en faisant une fausse colonne sur les <div> ou le <form> ça doit pouvoir se masquer.
Dalida
Messages postés
6728
Date d'inscription
mardi 14 mai 2002
Statut
Contributeur
Dernière intervention
11 janvier 2016
921
5 févr. 2008 à 10:31
5 févr. 2008 à 10:31
salut,
à tester :
définir la hauteur de ligne du paragraphe et lui appliquer un alignement vertical (comme input est rendu en ligne il devrait s'aligner mais c'est vraiment pas sûr…).
à tester :
définir la hauteur de ligne du paragraphe et lui appliquer un alignement vertical (comme input est rendu en ligne il devrait s'aligner mais c'est vraiment pas sûr…).
p { line-heigth:4em; vertical-align:center; }
Merci!
Par contre je ne suis pas sûre de bien comprendre... comment puis-je insérer un label si j'enlève la balise ?
Par contre je ne suis pas sûre de bien comprendre... comment puis-je insérer un label si j'enlève la balise ?
Scalpweb
Messages postés
1467
Date d'inscription
samedi 13 mars 2004
Statut
Membre
Dernière intervention
5 mai 2010
43
5 févr. 2008 à 10:34
5 févr. 2008 à 10:34
Voici comment je construit mes formulaires la plupart du temps :
A toi ensuite de modifier le 150px par la valeur qui convient.
Une autre technique consiste à mettre le tout dans des tableaux, c'est très pratiques :
Là, il te suffit de modifier le valign="top" en valign="middle" si tu le désires.
Voilà,
@+
<form id=monForm action="page2.php" method=POST> <div> <div style="float: left;">Prenom :</div> <div style="padding-left: 150px;"><input type="text" id="form_prenom" name="prenom" /></div> <div style="float: left;">Nom :</div> <div style="padding-left: 150px;"><input type="text" id="form_nom" name="nom" /></div> </div>
A toi ensuite de modifier le 150px par la valeur qui convient.
Une autre technique consiste à mettre le tout dans des tableaux, c'est très pratiques :
<table><tbody> <tr> <td style="width: 160px;">Nom:</td> <td valign="top"> <input type="text" id="form_nom" name="nom" /> </td> </tr> <tr> <td style="width: 160px;">Prenom :</td> <td valign="top"> input type="text" id="form_prenom" name="prenom" /> </td> </tr> </tbody></table>
Là, il te suffit de modifier le valign="top" en valign="middle" si tu le désires.
Voilà,
@+
En fait ça ne semble marcher que partiellement, si je change line-height (par exemple 2em), alors l'alignement n'est plus correct. Par ailleurs lorsque mes labels font deux lignes, cela ne semble plus faire d'effet :-?
Le cas échéant, serait-il possible de fixer une hauteur minimale pour un label ?
Dalida
Messages postés
6728
Date d'inscription
mardi 14 mai 2002
Statut
Contributeur
Dernière intervention
11 janvier 2016
921
5 févr. 2008 à 11:29
5 févr. 2008 à 11:29
oui, il existe la propriété {min-height} mais bien évidement elle n'est pas appliquée par IE…
je ne comprends pas bien ce que tu veux mais pense que tu peux aussi jouer sur la structure HTML en mettant le <input> à l'intérieur ou à la suite de <label>, ce qui donne un comportement différent pour le rendu.
je ne comprends pas bien ce que tu veux mais pense que tu peux aussi jouer sur la structure HTML en mettant le <input> à l'intérieur ou à la suite de <label>, ce qui donne un comportement différent pour le rendu.
<p> <label> <input /> </label> </p> <!-- ou --> <p> <label></label> <input /> </p>
Ce que je voudrais faire, c'et avoir mes labels sur un fond d'une certaine couleur et mes input/select sur le fond normal de ma page.
C'est difficile à expliquer clairement... j'espère que c'est plus ou moins compréhensible...
C'est difficile à expliquer clairement... j'espère que c'est plus ou moins compréhensible...
---------------------------------------- MON LABEL. | MON INPUT_TEXT, INPUT_RADIO ou SELECT ---------------------------------------- ---------------------------------------- MON LABEL2. | MON INPUT_TEXT, INPUT_RADIO ou SELECT ---------------------------------------- ---------------------------------------- MON LABEL2. | qui prend plusieurs | MON INPUT_TEXT, INPUT_RADIO ou SELECT LIGNE | ----------------------------------------
Le problème de cette solution, c'est quelle implique de savoir si le label fera effectivement plusieurs lignes, ce qui peut varier suivant les résolutions, navigateurs, taille de fontes, ...
Scalpweb
Messages postés
1467
Date d'inscription
samedi 13 mars 2004
Statut
Membre
Dernière intervention
5 mai 2010
43
5 févr. 2008 à 15:01
5 févr. 2008 à 15:01
Bon, ben moi je te reconseilles un tableau...
Ce serait déjà fini ;-)
Je fais ce que je peux pour respecter les normes W3C, mais des fois il vaut mieux passer outre.
Ce serait déjà fini ;-)
Je fais ce que je peux pour respecter les normes W3C, mais des fois il vaut mieux passer outre.
Je crois que je vais suivre ton conseil Scalpweb... parce que là ce que je fais ça s'apparente plus à du bricolage qu'à autre chose...
Scalpweb
Messages postés
1467
Date d'inscription
samedi 13 mars 2004
Statut
Membre
Dernière intervention
5 mai 2010
43
5 févr. 2008 à 15:12
5 févr. 2008 à 15:12
:-)
Pense à passer ce post en tant que sujet Résolu...
Pense à passer ce post en tant que sujet Résolu...
Je n'ai pas de case résolu...
Dalida
Messages postés
6728
Date d'inscription
mardi 14 mai 2002
Statut
Contributeur
Dernière intervention
11 janvier 2016
921
5 févr. 2008 à 17:00
5 févr. 2008 à 17:00
c'est accessible aux membres seulement.
je te coche.
bon courage pour la suite !
-;o)
je te coche.
bon courage pour la suite !
-;o)
Scalpweb
Messages postés
1467
Date d'inscription
samedi 13 mars 2004
Statut
Membre
Dernière intervention
5 mai 2010
43
5 févr. 2008 à 16:30
5 févr. 2008 à 16:30
Ba tu réponds, et tu coches "Résolu", en bas de la zone ou tu tapes ton message.