Explorations de formulaires CSS « Ou comment s’arracher les cheveux... »

lundi 16 juin 2008 // Semences SPIP

La version SVN de SPIP essaie de trouver une structure HTML/CSS correcte pour les formulaires. Loin d’être simple, voici des commentaires sur une évolution du code proposé par Tetue ici et

Notre référente CSS, Tetue, propose de réaliser des formulaires en utilisant des listes ul / li pour assurer leur structure, associés à des labels ayant un display inline-block.

L’affichage se présente bien quelque soit le navigateur, mais nous sommes vite confrontés à un problème...

Dès que l’on veut ajouter plus d’un élément entre 2 labels, le second élément est alors positionné sous le label, aligné à gauche, et non sous le premier élément avec le même alignement. Ainsi, s’il y a une erreur sur un des champs dans l’exemple, l’erreur sera affichée décalée sur la gauche par rapport à l’input qu’elle représente.

Pour combler cela, il est possible de déclarer le label en float:left ; et d’attribuer une marge identique à tous les éléments contenus entre 2 labels, ce qui est vite rébarbatif.

Voici une autre solution utilisant une marge négative.

Formulaire reprisé

Pour positionner l’ensemble, nous allons jouer avec des marges négatives. Schématisé, cela donne :

1) on applique un padding gauche au LI supérieur à la taille du label (ex:120px)

2) on demande au label d’être flottant et décalé sur la gauche (via un margin négatif)

3) lorsqu’un fieldset suit un li, on le décale aussi vers la gauche (seul IE n’en tient pas compte) pour que le fieldset prenne toute la largeur aussi

1 commentaire


Vos commentaires :

  1. Le 7 novembre 2008 à 18:20, par Matthieu Marcillaud

    Dans la version de SPIP 2.0 beta2, le point 3 ( fieldset dans un li ) qui n’est pas redécalé sur la gauche par IE<8 a été corrigé en proposant ceci :

    Un li destiné à recevoir un fieldset se voit appliqué une class « fieldset ».

    Il suffit alors de definir que ces li n’ont pas de grand padding :


Ajoutez votre commentaire

Ajoutez votre commentaire
Qui êtes-vous ? (optionnel)

Pour afficher votre trombine avec votre message, enregistrez-la d'abord sur gravatar.com (gratuit et indolore). Postez ensuite votre message ici, sans oublier d'indiquer votre adresse e-mail (non publiée).



Site réalisé avec SPIP | © 2001-2010 marcimat. Ma Graine .Net | Archives