description: Create beautifully simple form labels that float over your input fields.
group: forms
toc: true
---
## Example
Wrap a pair of `<input class="form-control">` and `<label>` elements in `.form-floating` to enable floating labels with Bootstrap's textual form fields. A `placeholder` is required on each `<input>` as our method of CSS-only floating labels uses the `:placeholder-shown` pseudo-element. Also note that the `<input>` must come first so we can utilize a sibling selector (e.g., `~`).
By default, `<textarea>`s with `.form-control` will be the same height as `<input>`s.
{{<example>}}
<divclass="form-floating">
<textareaclass="form-control"placeholder="Leave a comment here"id="floatingTextarea"></textarea>
<labelfor="floatingTextarea">Comments</label>
</div>
{{</example>}}
To set a custom height on your `<textarea>`, do not use the `rows` attribute. Instead, set an explicit `height` (either inline or via custom CSS).
{{<example>}}
<divclass="form-floating">
<textareaclass="form-control"placeholder="Leave a comment here"id="floatingTextarea2"style="height: 100px"></textarea>
<labelfor="floatingTextarea2">Comments</label>
</div>
{{</example>}}
## Selects
Other than `.form-control`, floating labels are only available on `.form-select`s. They work in the same way, but unlike `<input>`s, they'll always show the `<label>` in its floated state. **Selects with `size` and `multiple` are not supported.**
Add the `disabled` boolean attribute on an input, a textarea or a select to give it a grayed out appearance, remove pointer events, and prevent focusing.
Floating labels also support `.form-control-plaintext`, which can be helpful for toggling from an editable `<input>` to a plaintext value without affecting the page layout.
When using `.input-group` and `.form-floating` along with form validation, the `-feedback` should be placed outside of the `.form-floating`, but inside of the `.input-group`. This means that the feedback will need to be shown using javascript.