S'il s'agit d'une table de largeur fixe, il est trivial de disposer des divs et des flottants. Réglez juste chaque largeur exactement ce que vous voulez. Pour une mise en page liquide et mise en page liquide est généralement très souhaitable, il est beaucoup plus difficile d'organiser une forme sans affichage de style de table, car float
et position
ne permettent pas facilement des calculs comme "cette cellule est la moitié de la largeur restante du parent, après que les étiquettes à largeur fixe ont été allouées ".
Ainsi, dans des cas comme celui-ci, qui inclut certainement le type de formulaire à deux colonnes que vous avez posté, les valeurs table-*
CSS display
sont votre seule possibilité. Si vous ne visez que IE8 et les autres navigateurs modernes, vous pouvez utiliser divs et définir display: table-row
et al dans la feuille de style.Cependant, pour des raisons de compatibilité avec IE6-7 et d'autres navigateurs plus anciens/mobiles/de niche, vous devrez utiliser les éléments réels <table>
/<tr>
/<td>
, car seuls les navigateurs modernes prennent en charge la table-CSS indépendamment des éléments de table.
Il n'y a pas de honte à cela. Un formulaire est en quelque sorte semi-tabulaire et il n'y a pas de désavantage pratique d'accessibilité, car le contenu de la page reste ordonné de manière appropriée.
Remarque: pour les formulaires de mise en page liquide, vous avez également la question des champs de saisie de dimensionnement pour correspondre à l'élément parent. input { width: 100%; }
le fait presque, mais pas tout à fait, parce que le width
n'inclut pas la bordure ou le remplissage que les entrées obtiennent par défaut. Vous pouvez utiliser CSS3 box-sizing
et les versions spécifiques de votre navigateur pour contourner cela pour les navigateurs modernes, mais si vous voulez aussi aligner exactement sur le pixel sur IE6-7, vous devrez utiliser padding sur les éléments parents égal à la bordure/remplissage sur le champ de saisie enfant.
oublié de mentionner - je besoin de travailler dans IE6-7, e à ajoute une certaine complexité aussi bien avec gimmicky min-width et d'autres bogues IE. –