5568 sujets

Sémantique web et HTML

Bonsoir à tous,

Newbie, je pose ma première question.

Soit des pages à valider en xhtml strict avec des forms, en gros la structure est celle-là :

<ul>
<li><a href=form.submit()>quelquechose<\a>
<form>
<p>
<input type=hidden>
<\p>
<\form>
<\li>
<\ul>

Le souci, c'est que sous ie6, le form qui devrait avoir une hauteur à 0, laisse un blanc de 5-10px de haut entre mes li, pas beau quoi :

Sous ie6
Li
Li (avec form)

Li
Li
Li

Les autres
Li
Li (avec form)
Li
Li
Li

Bien sur si j enlève les p aucun souci mais alors pas valide xhtml strict

Cela semble lié au haslayout d'ie6 mais pas sur...
Modifié par fpoil (27 Jul 2010 - 21:09)
Modérateur
Bonjour,

Par défaut, chaque navigateur applique des styles CSS aux éléments, tel que la marge et le padding. Tu dois t'assurer de redéfinir le margin et padding des différents éléments concernés (li, form, p).

Sinon, je verrais davantage un div plutôt qu'un p pour englober ton champ hidden dans le formulaire. Le p est pour définir un paragraphe, et ce n'est visiblement pas un paragraphe.
Modifié par Tony Monast (28 Jul 2010 - 14:48)
Salut,
Tony Monast a écrit :
Le p est pour définir un paragraphe, et ce n'est visiblement pas un paragraphe.
La question est sujette à troll en HTML 4 (exemple), mais été tranchée en HTML 5 : la balise <p> sera bien recommandée pour encadrer les éléments de formulaires.
Modérateur
Bonjour marcv,

Je suis prêt à te croire, mais c'est écrit où exactement que ce sera recommandé pour encadrer les éléments de formulaires? Smiley ohwell

Il faut aussi noter que la question ici est par rapport à xhtml strict, et non HTML5.

Sans vouloir repartir un troll non plus, il me semble qu'utiliser un <p> pour encadrer un champ hidden, c'est loin d'être justifiable.
Bonjour,

Je suis d'accord avec Tony.

Un input de type hidden n'est rien d'autre qu'une méta donnée du formulaire, au même titre que l'attribut "action". La contrainte qui interdit à un élément input d'être un enfant d'un élément form me paraît totalement inadaptée dans ce cas. Je la contournerais comme ceci :
<form ...><div>
  <input type="hidden" ... />

  <p>
    ...
  </p>

  ...
</div></form>

P.S. : fpoil, avant de te soucier de la validation, je pense qu'il y aurait des choses plus importantes à revoir dans ton code ; par exemple le fait que ton formulaire nécessite l'interprétation de code JavaScript là où ce n'est pas nécessaire (pour soumettre un formulaire).
Modifié par Julien Royer (28 Jul 2010 - 17:07)
Tony Monast a écrit :
Je suis prêt à te croire, mais c'est écrit où exactement que ce sera recommandé pour encadrer les éléments de formulaires? Smiley ohwell
J'ai donné le lien dans mon post précédent, si tu le suis tu pourras y lire que "a part of a form" est considéré comme un paragraphe.

Tony Monast a écrit :
il me semble qu'utiliser un <p> pour encadrer un champ hidden, c'est loin d'être justifiable
Est-ce que lorsque le champ est hidden la spécification ne le considére plus comme une "part of a form" ? Et dans ce cas est-ce que la div retrouve droit de cité ? Franchement je ne sais pas s'ils sont allés spécifier aussi loin Smiley smile . Et soit dit en passant je suis, sur le principe, tout à fait d'accord avec toi (et avec Julien) sur la non-justifiabilité de la chose. Sur le principe Smiley cligne .
Modérateur
marcv a écrit :
J'ai donné le lien dans mon post précédent, si tu le suis tu pourras y lire que "a part of a form" est considéré comme un paragraphe.


Oui, j'avais lu cette partie, mais je ne trouve pas ça très explicite. Ça ne définie pas exactement ce qu'ils entendent par une partie d'un formulaire.

En lisant une documentation semblable, il faut utiliser son gros bon sens, et le gros bon sens me dit qu'utiliser un p pour encadrer un simple champ hidden est farfelu.

Ce n'est pas non plus parce que la documentation autorise l'utilisation de tel élément pour telle chose, que c'est forcément une bonne idée. Smiley cligne

marcv a écrit :
en HTML 5 : la balise <p> sera bien recommandée pour encadrer les éléments de formulaires.


Recommandé ou autorisé?
Modifié par Tony Monast (28 Jul 2010 - 17:55)