## Example
{{< example >}}
-<form>
- <div class="mb-3">
- <label for="exampleFormControlInput1">Email address</label>
- <input type="email" class="form-control" id="exampleFormControlInput1" placeholder="name@example.com">
- </div>
- <div class="mb-3">
- <label for="exampleFormControlTextarea1">Example textarea</label>
- <textarea class="form-control" id="exampleFormControlTextarea1" rows="3"></textarea>
- </div>
-</form>
+<div class="mb-3">
+ <label for="exampleFormControlInput1">Email address</label>
+ <input type="email" class="form-control" id="exampleFormControlInput1" placeholder="name@example.com">
+</div>
+<div class="mb-3">
+ <label for="exampleFormControlTextarea1">Example textarea</label>
+ <textarea class="form-control" id="exampleFormControlTextarea1" rows="3"></textarea>
+</div>
{{< /example >}}
## Sizing
If you want to have `<input readonly>` elements in your form styled as plain text, use the `.form-control-plaintext` class to remove the default form field styling and preserve the correct margin and padding.
{{< example >}}
-<form>
<div class="mb-3 row">
<label for="staticEmail" class="col-sm-2 col-form-label">Email</label>
<div class="col-sm-10">
<input type="password" class="form-control" id="inputPassword">
</div>
</div>
-</form>
{{< /example >}}
{{< example >}}
## Color
{{< example >}}
-<form>
- <label for="exampleColorInput">Color picker</label>
- <input type="color" class="form-control form-control-color" id="exampleColorInput" value="#563d7c" title="Choose your color">
-</form>
+<label for="exampleColorInput">Color picker</label>
+<input type="color" class="form-control form-control-color" id="exampleColorInput" value="#563d7c" title="Choose your color">
{{< /example >}}
## Datalists
Learn more about [support for datalist elements](https://caniuse.com/#feat=datalist).
{{< example >}}
-<form>
- <label for="exampleDataList">Datalist example</label>
- <input class="form-control" list="datalistOptions" id="exampleDataList" placeholder="Type to search...">
- <datalist id="datalistOptions">
- <option value="San Francisco">
- <option value="New York">
- <option value="Seattle">
- <option value="Los Angeles">
- <option value="Chicago">
- </datalist>
-</form>
+<label for="exampleDataList">Datalist example</label>
+<input class="form-control" list="datalistOptions" id="exampleDataList" placeholder="Type to search...">
+<datalist id="datalistOptions">
+ <option value="San Francisco">
+ <option value="New York">
+ <option value="Seattle">
+ <option value="Los Angeles">
+ <option value="Chicago">
+</datalist>
{{< /example >}}
Feel free to build your forms however you like, with `<fieldset>`s, `<div>`s, or nearly any other element.
{{< example >}}
-<form>
- <div class="mb-3">
- <label for="formGroupExampleInput">Example label</label>
- <input type="text" class="form-control" id="formGroupExampleInput" placeholder="Example input placeholder">
- </div>
- <div class="mb-3">
- <label for="formGroupExampleInput2">Another label</label>
- <input type="text" class="form-control" id="formGroupExampleInput2" placeholder="Another input placeholder">
- </div>
-</form>
+<div class="mb-3">
+ <label for="formGroupExampleInput">Example label</label>
+ <input type="text" class="form-control" id="formGroupExampleInput" placeholder="Example input placeholder">
+</div>
+<div class="mb-3">
+ <label for="formGroupExampleInput2">Another label</label>
+ <input type="text" class="form-control" id="formGroupExampleInput2" placeholder="Another input placeholder">
+</div>
{{< /example >}}
## Form grid
More complex forms can be built using our grid classes. Use these for form layouts that require multiple columns, varied widths, and additional alignment options. **Requires the `$enable-grid-classes` Sass variable to be enabled** (on by default).
{{< example >}}
-<form class="row">
+<div class="row">
<div class="col">
<input type="text" class="form-control" placeholder="First name">
</div>
<div class="col">
<input type="text" class="form-control" placeholder="Last name">
</div>
-</form>
+</div>
{{< /example >}}
## Gutters
By adding [gutter modifier classes]({{< docsref "/layout/grid#gutters" >}}), you can have control over the gutter width in as well the inline as block direction. **Also requires the `$enable-grid-classes` Sass variable to be enabled** (on by default).
{{< example >}}
-<form class="row g-3">
+<div class="row g-3">
<div class="col">
<input type="text" class="form-control" placeholder="First name">
</div>
<div class="col">
<input type="text" class="form-control" placeholder="Last name">
</div>
-</form>
+</div>
{{< /example >}}
More complex layouts can also be created with the grid system.
Be sure to use `.col-form-label-sm` or `.col-form-label-lg` to your `<label>`s or `<legend>`s to correctly follow the size of `.form-control-lg` and `.form-control-sm`.
{{< example >}}
-<form>
- <div class="row mb-3">
- <label for="colFormLabelSm" class="col-sm-2 col-form-label col-form-label-sm">Email</label>
- <div class="col-sm-10">
- <input type="email" class="form-control form-control-sm" id="colFormLabelSm" placeholder="col-form-label-sm">
- </div>
- </div>
- <div class="row mb-3">
- <label for="colFormLabel" class="col-sm-2 col-form-label">Email</label>
- <div class="col-sm-10">
- <input type="email" class="form-control" id="colFormLabel" placeholder="col-form-label">
- </div>
- </div>
- <div class="row">
- <label for="colFormLabelLg" class="col-sm-2 col-form-label col-form-label-lg">Email</label>
- <div class="col-sm-10">
- <input type="email" class="form-control form-control-lg" id="colFormLabelLg" placeholder="col-form-label-lg">
- </div>
- </div>
-</form>
+<div class="row mb-3">
+ <label for="colFormLabelSm" class="col-sm-2 col-form-label col-form-label-sm">Email</label>
+ <div class="col-sm-10">
+ <input type="email" class="form-control form-control-sm" id="colFormLabelSm" placeholder="col-form-label-sm">
+ </div>
+</div>
+<div class="row mb-3">
+ <label for="colFormLabel" class="col-sm-2 col-form-label">Email</label>
+ <div class="col-sm-10">
+ <input type="email" class="form-control" id="colFormLabel" placeholder="col-form-label">
+ </div>
+</div>
+<div class="row">
+ <label for="colFormLabelLg" class="col-sm-2 col-form-label col-form-label-lg">Email</label>
+ <div class="col-sm-10">
+ <input type="email" class="form-control form-control-lg" id="colFormLabelLg" placeholder="col-form-label-lg">
+ </div>
+</div>
{{< /example >}}
## Column sizing
As shown in the previous examples, our grid system allows you to place any number of `.col`s within a `.row`. They'll split the available width equally between them. You may also pick a subset of your columns to take up more or less space, while the remaining `.col`s equally split the rest, with specific column classes like `.col-sm-7`.
{{< example >}}
-<form class="row g-3">
+<div class="row g-3">
<div class="col-sm-7">
<input type="text" class="form-control" placeholder="City">
</div>
<div class="col-sm">
<input type="text" class="form-control" placeholder="Zip">
</div>
-</form>
+</div>
{{< /example >}}
## Auto-sizing