Selon les nombreuses références sur le web, il n'est pas possible de positionner une légende. Il est donc suggéré de l'envelopper avec span:
<legend><span>Foo</span></legend>
Ensuite, nous pouvons positionner le span à l'intérieur du fieldset. mais quand je veux ajouter une bordure au-dessus du champ, il y a un espace pour la légende. Heureusement, j'ai trouvé que l'ajout d'une bordure à la légende corrige également ce petit écart minuscule, mais c'est une solution laide (comme tout le reste avec CSS). Avez-vous des solutions plus valables à ce problème?
note: J'ai trouvé la solution simultanément, après avoir commencé à écrire cette question, je veux donc toujours la poser.
J'ai trouvé ça simple float:left
pour LEGEND
fera l'affaire.
Exemple de Codepen: http://codepen.io/vkjgr/pen/oFdBa
Je sais que c'est une vieille question, mais j'ai eu cette page quand j'ai googlé "position de la légende du champ", et je n'ai vraiment pas pu trouver une bonne réponse.
La légende ne se comportera tout simplement pas!, Donc la meilleure solution que j'ai trouvée était de la positionner de manière absolue et d'avoir un dessus rembourré sur le terrain. Exemple JSFildle: http://jsfiddle.net/carlosmartinezt/gtNnT/356/
fieldset {
position:relative;
padding-top:50px;
}
legend {
position:absolute;
top:20px;
left:18px;
}
Utilisez un contour au lieu d'une bordure: http://jsfiddle.net/leaverou/gtNnT/
L'OP a presque répondu à sa propre question: l'emballage fait l'affaire, mais c'est l'inverse. Utilisation:
<span><legend>Foo</legend></span>
Définissez des marges pour le positionnement. Cela fonctionne sans problème.
legend {margin-left:50px;} /* 50px from Left of the Fieldset */
Vous pouvez utiliser "-50px" en bas pour la légende et "50px" en haut pour le jeu de champs afin de ne pas se chevaucher.
fieldset {
padding-top:50px;
}
fieldset legend {
margin-bottom:-50px;
}