Salta al contenuto principale Salta alla navigazione dei documenti
Check
in English

Etichette fluttuanti

Crea etichette modulo meravigliosamente semplici che fluttuano sui campi di input.

Esempio

Avvolgi una coppia di elementi <input class="form-control">e per abilitare le etichette mobili con i campi del modulo testuale di Bootstrap. A è richiesto su ciascuno poiché il nostro metodo di etichette mobili solo CSS utilizza lo pseudo-elemento. Nota anche che deve venire prima in modo da poter utilizzare un selettore di pari livello (ad esempio, ).<label>.form-floatingplaceholder<input>:placeholder-shown<input>~

html
<div class="form-floating mb-3">
  <input type="email" class="form-control" id="floatingInput" placeholder="[email protected]">
  <label for="floatingInput">Email address</label>
</div>
<div class="form-floating">
  <input type="password" class="form-control" id="floatingPassword" placeholder="Password">
  <label for="floatingPassword">Password</label>
</div>

Quando c'è un valuegià definito, <label>s si regolerà automaticamente alla loro posizione mobile.

html
<form class="form-floating">
  <input type="email" class="form-control" id="floatingInputValue" placeholder="[email protected]" value="[email protected]">
  <label for="floatingInputValue">Input with value</label>
</form>

Anche gli stili di convalida dei moduli funzionano come previsto.

html
<form class="form-floating">
  <input type="email" class="form-control is-invalid" id="floatingInputInvalid" placeholder="[email protected]" value="[email protected]">
  <label for="floatingInputInvalid">Invalid input</label>
</form>

Aree di testo

Per impostazione predefinita, <textarea>s con .form-controlavrà la stessa altezza di <input>s.

html
<div class="form-floating">
  <textarea class="form-control" placeholder="Leave a comment here" id="floatingTextarea"></textarea>
  <label for="floatingTextarea">Comments</label>
</div>

Per impostare un'altezza personalizzata sul tuo <textarea>, non utilizzare l' rowsattributo. Invece, imposta un esplicito height(inline o tramite CSS personalizzato).

html
<div class="form-floating">
  <textarea class="form-control" placeholder="Leave a comment here" id="floatingTextarea2" style="height: 100px"></textarea>
  <label for="floatingTextarea2">Comments</label>
</div>

Seleziona

A parte .form-control, le etichette mobili sono disponibili solo su .form-selects. Funzionano allo stesso modo, ma a differenza <input>di s, mostreranno sempre lo <label>stato mobile. Seleziona con sizee multiplenon sono supportati.

html
<div class="form-floating">
  <select class="form-select" id="floatingSelect" aria-label="Floating label select example">
    <option selected>Open this select menu</option>
    <option value="1">One</option>
    <option value="2">Two</option>
    <option value="3">Three</option>
  </select>
  <label for="floatingSelect">Works with selects</label>
</div>

Testo in chiaro di sola lettura

Le etichette mobili supportano anche .form-control-plaintext, che può essere utile per passare da un valore modificabile <input>a un valore di testo normale senza influire sul layout della pagina.

html
<div class="form-floating mb-3">
  <input type="email" readonly class="form-control-plaintext" id="floatingEmptyPlaintextInput" placeholder="[email protected]">
  <label for="floatingEmptyPlaintextInput">Empty input</label>
</div>
<div class="form-floating mb-3">
  <input type="email" readonly class="form-control-plaintext" id="floatingPlaintextInput" placeholder="[email protected]" value="[email protected]">
  <label for="floatingPlaintextInput">Input with value</label>
</div>

Gruppi di input

Supportano anche le etichette mobili .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="Username">
    <label for="floatingInputGroup1">Username</label>
  </div>
</div>

Quando si utilizza .input-groupe .form-floatinginsieme alla convalida del modulo, -feedbackdeve essere posizionato all'esterno di .form-floating, ma all'interno di .input-group. Ciò significa che il feedback dovrà essere mostrato utilizzando javascript.

@
Scegli un nome utente.
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="Username" required>
    <label for="floatingInputGroup2">Username</label>
  </div>
  <div class="invalid-feedback">
    Please choose a username.
  </div>
</div>

Disposizione

Quando si lavora con il sistema di griglia Bootstrap, assicurarsi di posizionare gli elementi del modulo all'interno delle classi di colonne.

html
<div class="row g-2">
  <div class="col-md">
    <div class="form-floating">
      <input type="email" class="form-control" id="floatingInputGrid" placeholder="[email protected]" value="[email protected]">
      <label for="floatingInputGrid">Email address</label>
    </div>
  </div>
  <div class="col-md">
    <div class="form-floating">
      <select class="form-select" id="floatingSelectGrid">
        <option selected>Open this select menu</option>
        <option value="1">One</option>
        <option value="2">Two</option>
        <option value="3">Three</option>
      </select>
      <label for="floatingSelectGrid">Works with selects</label>
    </div>
  </div>
</div>

Sass

Variabili

$form-floating-height:            add(3.5rem, $input-height-border);
$form-floating-line-height:       1.25;
$form-floating-padding-x:         $input-padding-x;
$form-floating-padding-y:         1rem;
$form-floating-input-padding-t:   1.625rem;
$form-floating-input-padding-b:   .625rem;
$form-floating-label-opacity:     .65;
$form-floating-label-transform:   scale(.85) translateY(-.5rem) translateX(.15rem);
$form-floating-transition:        opacity .1s ease-in-out, transform .1s ease-in-out;