Naar de inhoud
Gratis naslagwerk over HTML
HTML leren en naslaan
Bootstrap 5.2 / Formulieren

Floating labels

Maak prachtig eenvoudige formulierlabels die over je invoervelden zweven.

Voorbeeld

Wikkel een paar bestaande uit <input class="form-control"> en <label> in .form-floating om floating labels bij de tekstuele formuliervelden van Bootstrap in te schakelen. Op elke <input> is een placeholder verplicht, omdat onze methode voor floating labels met alleen CSS het pseudo-element :placeholder-shown gebruikt. Let er ook op dat de <input> eerst moet komen, zodat we een sibling-selector (bijv. ~) kunnen gebruiken.

HTML
<div class="form-floating mb-3">
  <input type="email" class="form-control" id="floatingInput" placeholder="naam@voorbeeld.nl">
  <label for="floatingInput">E-mailadres</label>
</div>
<div class="form-floating">
  <input type="password" class="form-control" id="floatingPassword" placeholder="Wachtwoord">
  <label for="floatingPassword">Wachtwoord</label>
</div>

Wanneer er al een value is gedefinieerd, passen <label>s zich automatisch aan naar hun zwevende positie.

HTML
<form class="form-floating">
  <input type="email" class="form-control" id="floatingInputValue" placeholder="naam@voorbeeld.nl" value="test@example.com">
  <label for="floatingInputValue">Input met waarde</label>
</form>

Ook formuliervalidatiestijlen werken zoals verwacht.

HTML
<form class="form-floating">
  <input type="email" class="form-control is-invalid" id="floatingInputInvalid" placeholder="naam@voorbeeld.nl" value="test@example.com">
  <label for="floatingInputInvalid">Ongeldige input</label>
</form>

Textareas

Standaard hebben <textarea>s met .form-control dezelfde hoogte als <input>s.

HTML
<div class="form-floating">
  <textarea class="form-control" placeholder="Laat hier een opmerking achter" id="floatingTextarea"></textarea>
  <label for="floatingTextarea">Opmerkingen</label>
</div>

Gebruik het rows-attribuut niet om een eigen hoogte op je <textarea> in te stellen. Stel in plaats daarvan een expliciete height in (inline of via eigen CSS).

HTML
<div class="form-floating">
  <textarea class="form-control" placeholder="Laat hier een opmerking achter" id="floatingTextarea2" style="height: 100px"></textarea>
  <label for="floatingTextarea2">Opmerkingen</label>
</div>

Selects

Behalve op .form-control zijn floating labels alleen beschikbaar op .form-selects. Ze werken op dezelfde manier, maar anders dan bij <input>s tonen ze het <label> altijd in zijn zwevende positie. Selects met size en multiple worden niet ondersteund.

HTML
<div class="form-floating">
  <select class="form-select" id="floatingSelect" aria-label="Voorbeeld van select met floating label">
    <option selected>Open dit selectiemenu</option>
    <option value="1">Een</option>
    <option value="2">Twee</option>
    <option value="3">Drie</option>
  </select>
  <label for="floatingSelect">Werkt met selects</label>
</div>

Alleen-lezen platte tekst

Floating labels ondersteunen ook .form-control-plaintext, wat handig kan zijn om van een bewerkbare <input> naar een waarde in platte tekst te schakelen zonder de paginalayout te beïnvloeden.

HTML
<div class="form-floating mb-3">
  <input type="email" readonly class="form-control-plaintext" id="floatingEmptyPlaintextInput" placeholder="naam@voorbeeld.nl">
  <label for="floatingEmptyPlaintextInput">Lege input</label>
</div>
<div class="form-floating mb-3">
  <input type="email" readonly class="form-control-plaintext" id="floatingPlaintextInput" placeholder="naam@voorbeeld.nl" value="naam@voorbeeld.nl">
  <label for="floatingPlaintextInput">Input met waarde</label>
</div>

Input groups

Floating labels ondersteunen ook .input-group.

HTML
<div class="input-group mb-3">
  <span class="input-group-text">@</span>
  <div class="form-floating">
    <input type="text" class="form-control" id="floatingInputGroup1" placeholder="Gebruikersnaam">
    <label for="floatingInputGroup1">Gebruikersnaam</label>
  </div>
</div>

Wanneer je .input-group en .form-floating samen met formuliervalidatie gebruikt, hoort de -feedback buiten de .form-floating maar binnen de .input-group te staan. Dat betekent dat de feedback met JavaScript getoond moet worden.

HTML
<div class="input-group has-validation">
  <span class="input-group-text">@</span>
  <div class="form-floating is-invalid">
    <input type="text" class="form-control is-invalid" id="floatingInputGroup2" placeholder="Gebruikersnaam" required>
    <label for="floatingInputGroup2">Gebruikersnaam</label>
  </div>
  <div class="invalid-feedback">
    Kies een gebruikersnaam.
  </div>
</div>

Layout

Wanneer je met het grid-systeem van Bootstrap werkt, plaats formulierelementen dan binnen kolomklassen.

HTML
<div class="row g-2">
  <div class="col-md">
    <div class="form-floating">
      <input type="email" class="form-control" id="floatingInputGrid" placeholder="naam@voorbeeld.nl" value="mdo@example.com">
      <label for="floatingInputGrid">E-mailadres</label>
    </div>
  </div>
  <div class="col-md">
    <div class="form-floating">
      <select class="form-select" id="floatingSelectGrid">
        <option selected>Open dit selectiemenu</option>
        <option value="1">Een</option>
        <option value="2">Twee</option>
        <option value="3">Drie</option>
      </select>
      <label for="floatingSelectGrid">Werkt met selects</label>
    </div>
  </div>
</div>

Sass

Variabelen

Standaardwaarden: zie scss/_variables.scss in de Bootstrap-broncode.