docs.rodeo

MDN Web Docs mirror

: The Field Set element

{{HTMLSidebar}} 

The <fieldset> HTML element is used to group several controls as well as labels ({{HTMLElement("label")}} ) within a web form.

{{EmbedInteractiveExample("pages/tabbed/fieldset.html", "tabbed-standard")}} 

As the example above shows, the <fieldset> element provides a grouping for a part of an HTML form, with a nested {{htmlelement("legend")}}  element providing a caption for the <fieldset>. It takes few attributes, the most notable of which are form, which can contain the id of a {{htmlelement("form")}}  on the same page, allowing you to make the <fieldset> part of that <form> even if it is not nested inside it, and disabled, which allows you to disable the <fieldset> and all its contents in one go.

Attributes

This element includes the global attributes.

Styling with CSS

There are several special styling considerations for <fieldset>.

Its {{cssxref("display")}}  value is block by default, and it establishes a block formatting context. If the <fieldset> is styled with an inline-level display value, it will behave as inline-block, otherwise it will behave as block. By default there is a 2px groove border surrounding the contents, and a small amount of default padding. The element has {{cssxref("min-inline-size", "min-inline-size: min-content")}}  by default.

If a {{htmlelement("legend")}}  is present, it is placed over the block-start border. The <legend> shrink-wraps, and also establishes a formatting context. The display value is blockified. (For example, display: inline behaves as block.)

There will be an anonymous box holding the contents of the <fieldset>, which inherits certain properties from the <fieldset>. If the <fieldset> is styled with display: grid or display: inline-grid, then the anonymous box will be a grid formatting context. If the <fieldset> is styled with display: flex or display: inline-flex, then the anonymous box will be a flex formatting context. Otherwise, it establishes a block formatting context.

You can feel free to style the <fieldset> and <legend> in any way you want to suit your page design.

Examples

Basic fieldset

This example includes a <fieldset> with a <legend>, with a single control inside it.

<form action="#">
  <fieldset>
    <legend>Do you agree?</legend>
    <input type="checkbox" id="chbx" name="agree" value="Yes!" />
    <label for="chbx">I agree</label>
  </fieldset>
</form>

Result

{{ EmbedLiveSample('Basic_fieldset', '100%', '80') }} 

Disabled fieldset

This example shows a disabled <fieldset> with two controls inside it. Note how both the controls are disabled due to being inside a disabled <fieldset>.

<form action="#">
  <fieldset disabled>
    <legend>Disabled login fieldset</legend>
    <div>
      <label for="name">Name: </label>
      <input type="text" id="name" value="Chris" />
    </div>
    <div>
      <label for="pwd">Archetype: </label>
      <input type="password" id="pwd" value="Wookie" />
    </div>
  </fieldset>
</form>

Result

{{ EmbedLiveSample('Disabled_fieldset', '100%', '110') }} 

Technical summary

Content categories Flow content, sectioning root, listed, form-associated element, palpable content.
Permitted content An optional `{{HTMLElement("legend")}}`  element, followed by flow content.
Tag omission None, both the starting and ending tag are mandatory.
Permitted parents Any element that accepts flow content.
Implicit ARIA role group
Permitted ARIA roles radiogroup, presentation, none
DOM interface `{{domxref("HTMLFieldSetElement")}}` 

Specifications

{{Specifications}} 

Browser compatibility

{{Compat}} 

See also

In this article

View on MDN