--- title: '
L'élément HTML <fieldset> est utilisé afin de regrouper plusieurs contrôles interactifs ainsi que des étiquettes ({{HTMLElement("label")}}) dans un formulaire web.
<fieldset>
Le code source de cet exemple interactif est disponible dans un dépôt GitHub. Si vous souhaitez contribuez à ces exemples, n'hésitez pas à cloner https://github.com/mdn/interactive-examples et à envoyer une pull request !
Comme on peut le voir dans l'exemple ci-avant, l'élément <fieldset> permet de regrouper une partie d'un formulaire HTML et d'associer une légende ({{htmlelement("legend")}}) décrivant ce groupe. Cet élément utilise quelques attributs et notamment form dont la valeur correspond à la valeur de l'attribut id d'un élément {{htmlelement("form")}} de la même page. De cette façon, on peut avoir un élément <fieldset> qui soit rattaché à un formulaire mais qui ne soit pas imbriqué dans ce formulaire. L'attribut disabled permet de désactiver l'élément <fieldset> ainsi que l'ensemble de son contenu via une seule valeur.
form
id
disabled
Cet élément prend en charge les attributs universels.
L'élément <fieldset> est quelque peu particulier pour la mise en forme.
La valeur initiale de la propriété {{cssxref("display")}} pour cet élément est block et l'élément crée un contexte de formatage de bloc. Si l'élément <fieldset> est mis en forme avec une valeur display qui correspond à un style en ligne, celui-ci se comportera comme inline-block et sinon comme block. Par défaut, une bordure de 2 pixels ondulée entoure le contenu de l'élément et il y a un léger padding. Par défaut, l'élément a min-inline-size: min-content.
block
display
inline-block
min-inline-size: min-content
Si un élément <legend> est présent, il est placé au dessus de la bordure située au début de l'axe de bloc. L'élément <legend> se réduit si besoin et établit également un contexte de formatage. Sa valeur display utilisée est block (autrement dit, on pourra le cibler avec display: inline, il continuera de se comporter comme block).
<legend>
display: inline
Une boîte anonyme contiendra le contenu de <fieldset> et héritera de certaines propriétés de <fieldset>. Si l'élément <fieldset> est mis en forme avec display: grid ou display: inline-grid, la boîte anonyme aura un contexte de formatage de grille. Si <fieldset> est mis en forme avec display: flex ou display: inline-flex, la boîte anonyme aura un contexte de formatage flexible. Dans tous les autres cas, la boîte anonyme aura un contexte de formatage de bloc.
display: grid
display: inline-grid
display: flex
display: inline-flex
Note : À l'heure où nous écrivons ces lignes, Microsoft Edge et Google Chrome contiennent des bogues qui empêchent d'utiliser les boîtes flexibles et les grilles à l'intérieur d'un élément {{HTMLElement("fieldset")}}. Cette issue GitHub fournit les liens vers les différents bugs.
<form action="test.php" method="post"> <fieldset> <legend>Titre</legend> <input type="radio" name="radio" id="radio"> <label for="radio">Cliquez moi</label> </fieldset> </form>
{{EmbedLiveSample("Exemple_simple","100%","80")}}
Dans cet exemple, on voit comment l'attribut disabled permet de désactiver un élément <fieldset> et l'ensemble de ses éléments par la même occasion.
<form action="#"> <fieldset disabled> <legend>Fieldset désactivé</legend> <div> <label for="name">Nom : </label> <input type="text" id="name" value="Chris"> </div> <div> <label for="pwd">Archétype : </label> <input type="password" id="pwd" value="Wookie"> </div> </fieldset> </form>
{{EmbedLiveSample('fieldset_désactivé', '100%', '110') }}
fieldset
{{Compat("html.elements.fieldset")}}