Ομάδα εισαγωγής
Επεκτείνετε εύκολα τα στοιχεία ελέγχου φόρμας προσθέτοντας κείμενο, κουμπιά ή ομάδες κουμπιών σε κάθε πλευρά των εισόδων κειμένου, προσαρμοσμένων επιλογών και προσαρμοσμένων εισόδων αρχείων.
Βασικό παράδειγμα
Τοποθετήστε ένα πρόσθετο ή κουμπί σε κάθε πλευρά μιας εισόδου. Μπορείτε επίσης να τοποθετήσετε ένα και στις δύο πλευρές μιας εισόδου. Θυμηθείτε να τοποθετήσετε <label>
s έξω από την ομάδα εισόδου.
<div class="input-group mb-3">
<div class="input-group-prepend">
<span class="input-group-text" id="basic-addon1">@</span>
</div>
<input type="text" class="form-control" placeholder="Username" aria-label="Username" aria-describedby="basic-addon1">
</div>
<div class="input-group mb-3">
<input type="text" class="form-control" placeholder="Recipient's username" aria-label="Recipient's username" aria-describedby="basic-addon2">
<div class="input-group-append">
<span class="input-group-text" id="basic-addon2">@example.com</span>
</div>
</div>
<label for="basic-url">Your vanity URL</label>
<div class="input-group mb-3">
<div class="input-group-prepend">
<span class="input-group-text" id="basic-addon3">https://example.com/users/</span>
</div>
<input type="text" class="form-control" id="basic-url" aria-describedby="basic-addon3">
</div>
<div class="input-group mb-3">
<div class="input-group-prepend">
<span class="input-group-text">$</span>
</div>
<input type="text" class="form-control" aria-label="Amount (to the nearest dollar)">
<div class="input-group-append">
<span class="input-group-text">.00</span>
</div>
</div>
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text">With textarea</span>
</div>
<textarea class="form-control" aria-label="With textarea"></textarea>
</div>
Τύλιγμα
Οι ομάδες εισόδου αναδιπλώνονται από προεπιλογή μέσω flex-wrap: wrap
, προκειμένου να προσαρμόζεται η επικύρωση πεδίου προσαρμοσμένης φόρμας σε μια ομάδα εισόδου. Μπορείτε να το απενεργοποιήσετε με .flex-nowrap
.
<div class="input-group flex-nowrap">
<div class="input-group-prepend">
<span class="input-group-text" id="addon-wrapping">@</span>
</div>
<input type="text" class="form-control" placeholder="Username" aria-label="Username" aria-describedby="addon-wrapping">
</div>
Κόλλα
Προσθέστε τις σχετικές κλάσεις μεγέθους φόρμας στην .input-group
ίδια και τα περιεχόμενα εντός θα αλλάξουν αυτόματα το μέγεθος—δεν χρειάζεται να επαναλαμβάνονται οι κλάσεις μεγέθους ελέγχου φόρμας σε κάθε στοιχείο.
Το μέγεθος των μεμονωμένων στοιχείων της ομάδας εισαγωγής δεν υποστηρίζεται.
<div class="input-group input-group-sm mb-3">
<div class="input-group-prepend">
<span class="input-group-text" id="inputGroup-sizing-sm">Small</span>
</div>
<input type="text" class="form-control" aria-label="Sizing example input" aria-describedby="inputGroup-sizing-sm">
</div>
<div class="input-group mb-3">
<div class="input-group-prepend">
<span class="input-group-text" id="inputGroup-sizing-default">Default</span>
</div>
<input type="text" class="form-control" aria-label="Sizing example input" aria-describedby="inputGroup-sizing-default">
</div>
<div class="input-group input-group-lg">
<div class="input-group-prepend">
<span class="input-group-text" id="inputGroup-sizing-lg">Large</span>
</div>
<input type="text" class="form-control" aria-label="Sizing example input" aria-describedby="inputGroup-sizing-lg">
</div>
Πλαίσια ελέγχου και ραδιόφωνα
Τοποθετήστε οποιοδήποτε πλαίσιο ελέγχου ή επιλογή ραδιοφώνου στο πρόσθετο μιας ομάδας εισαγωγής αντί για κείμενο.
<div class="input-group mb-3">
<div class="input-group-prepend">
<div class="input-group-text">
<input type="checkbox" aria-label="Checkbox for following text input">
</div>
</div>
<input type="text" class="form-control" aria-label="Text input with checkbox">
</div>
<div class="input-group">
<div class="input-group-prepend">
<div class="input-group-text">
<input type="radio" aria-label="Radio button for following text input">
</div>
</div>
<input type="text" class="form-control" aria-label="Text input with radio button">
</div>
Πολλαπλές είσοδοι
Ενώ πολλαπλά <input>
s υποστηρίζονται οπτικά, τα στυλ επικύρωσης είναι διαθέσιμα μόνο για ομάδες εισόδου με ένα μόνο <input>
.
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text">First and last name</span>
</div>
<input type="text" aria-label="First name" class="form-control">
<input type="text" aria-label="Last name" class="form-control">
</div>
Πολλαπλά πρόσθετα
Υποστηρίζονται πολλά πρόσθετα και μπορούν να συνδυαστούν με το πλαίσιο ελέγχου και τις εκδόσεις εισόδου ραδιοφώνου.
<div class="input-group mb-3">
<div class="input-group-prepend">
<span class="input-group-text">$</span>
<span class="input-group-text">0.00</span>
</div>
<input type="text" class="form-control" aria-label="Dollar amount (with dot and two decimal places)">
</div>
<div class="input-group">
<input type="text" class="form-control" aria-label="Dollar amount (with dot and two decimal places)">
<div class="input-group-append">
<span class="input-group-text">$</span>
<span class="input-group-text">0.00</span>
</div>
</div>
Πρόσθετα κουμπιών
<div class="input-group mb-3">
<div class="input-group-prepend">
<button class="btn btn-outline-secondary" type="button" id="button-addon1">Button</button>
</div>
<input type="text" class="form-control" placeholder="" aria-label="Example text with button addon" aria-describedby="button-addon1">
</div>
<div class="input-group mb-3">
<input type="text" class="form-control" placeholder="Recipient's username" aria-label="Recipient's username" aria-describedby="button-addon2">
<div class="input-group-append">
<button class="btn btn-outline-secondary" type="button" id="button-addon2">Button</button>
</div>
</div>
<div class="input-group mb-3">
<div class="input-group-prepend" id="button-addon3">
<button class="btn btn-outline-secondary" type="button">Button</button>
<button class="btn btn-outline-secondary" type="button">Button</button>
</div>
<input type="text" class="form-control" placeholder="" aria-label="Example text with two button addons" aria-describedby="button-addon3">
</div>
<div class="input-group">
<input type="text" class="form-control" placeholder="Recipient's username" aria-label="Recipient's username with two button addons" aria-describedby="button-addon4">
<div class="input-group-append" id="button-addon4">
<button class="btn btn-outline-secondary" type="button">Button</button>
<button class="btn btn-outline-secondary" type="button">Button</button>
</div>
</div>
Κουμπιά με αναπτυσσόμενα μενού
<div class="input-group mb-3">
<div class="input-group-prepend">
<button class="btn btn-outline-secondary dropdown-toggle" type="button" data-toggle="dropdown" aria-expanded="false">Dropdown</button>
<div class="dropdown-menu">
<a class="dropdown-item" href="#">Action</a>
<a class="dropdown-item" href="#">Another action</a>
<a class="dropdown-item" href="#">Something else here</a>
<div role="separator" class="dropdown-divider"></div>
<a class="dropdown-item" href="#">Separated link</a>
</div>
</div>
<input type="text" class="form-control" aria-label="Text input with dropdown button">
</div>
<div class="input-group">
<input type="text" class="form-control" aria-label="Text input with dropdown button">
<div class="input-group-append">
<button class="btn btn-outline-secondary dropdown-toggle" type="button" data-toggle="dropdown" aria-expanded="false">Dropdown</button>
<div class="dropdown-menu">
<a class="dropdown-item" href="#">Action</a>
<a class="dropdown-item" href="#">Another action</a>
<a class="dropdown-item" href="#">Something else here</a>
<div role="separator" class="dropdown-divider"></div>
<a class="dropdown-item" href="#">Separated link</a>
</div>
</div>
</div>
Τμηματοποιημένα κουμπιά
<div class="input-group mb-3">
<div class="input-group-prepend">
<button type="button" class="btn btn-outline-secondary">Action</button>
<button type="button" class="btn btn-outline-secondary dropdown-toggle dropdown-toggle-split" data-toggle="dropdown" aria-expanded="false">
<span class="sr-only">Toggle Dropdown</span>
</button>
<div class="dropdown-menu">
<a class="dropdown-item" href="#">Action</a>
<a class="dropdown-item" href="#">Another action</a>
<a class="dropdown-item" href="#">Something else here</a>
<div role="separator" class="dropdown-divider"></div>
<a class="dropdown-item" href="#">Separated link</a>
</div>
</div>
<input type="text" class="form-control" aria-label="Text input with segmented dropdown button">
</div>
<div class="input-group">
<input type="text" class="form-control" aria-label="Text input with segmented dropdown button">
<div class="input-group-append">
<button type="button" class="btn btn-outline-secondary">Action</button>
<button type="button" class="btn btn-outline-secondary dropdown-toggle dropdown-toggle-split" data-toggle="dropdown" aria-expanded="false">
<span class="sr-only">Toggle Dropdown</span>
</button>
<div class="dropdown-menu">
<a class="dropdown-item" href="#">Action</a>
<a class="dropdown-item" href="#">Another action</a>
<a class="dropdown-item" href="#">Something else here</a>
<div role="separator" class="dropdown-divider"></div>
<a class="dropdown-item" href="#">Separated link</a>
</div>
</div>
</div>
Προσαρμοσμένες φόρμες
Οι ομάδες εισόδου περιλαμβάνουν υποστήριξη για προσαρμοσμένες επιλογές και προσαρμοσμένες εισόδους αρχείων. Οι προεπιλεγμένες εκδόσεις του προγράμματος περιήγησης δεν υποστηρίζονται.
Προσαρμοσμένη επιλογή
<div class="input-group mb-3">
<div class="input-group-prepend">
<label class="input-group-text" for="inputGroupSelect01">Options</label>
</div>
<select class="custom-select" id="inputGroupSelect01">
<option selected>Choose...</option>
<option value="1">One</option>
<option value="2">Two</option>
<option value="3">Three</option>
</select>
</div>
<div class="input-group mb-3">
<select class="custom-select" id="inputGroupSelect02">
<option selected>Choose...</option>
<option value="1">One</option>
<option value="2">Two</option>
<option value="3">Three</option>
</select>
<div class="input-group-append">
<label class="input-group-text" for="inputGroupSelect02">Options</label>
</div>
</div>
<div class="input-group mb-3">
<div class="input-group-prepend">
<button class="btn btn-outline-secondary" type="button">Button</button>
</div>
<select class="custom-select" id="inputGroupSelect03" aria-label="Example select with button addon">
<option selected>Choose...</option>
<option value="1">One</option>
<option value="2">Two</option>
<option value="3">Three</option>
</select>
</div>
<div class="input-group">
<select class="custom-select" id="inputGroupSelect04" aria-label="Example select with button addon">
<option selected>Choose...</option>
<option value="1">One</option>
<option value="2">Two</option>
<option value="3">Three</option>
</select>
<div class="input-group-append">
<button class="btn btn-outline-secondary" type="button">Button</button>
</div>
</div>
Προσαρμοσμένη εισαγωγή αρχείου
<div class="input-group mb-3">
<div class="input-group-prepend">
<span class="input-group-text" id="inputGroupFileAddon01">Upload</span>
</div>
<div class="custom-file">
<input type="file" class="custom-file-input" id="inputGroupFile01" aria-describedby="inputGroupFileAddon01">
<label class="custom-file-label" for="inputGroupFile01">Choose file</label>
</div>
</div>
<div class="input-group mb-3">
<div class="custom-file">
<input type="file" class="custom-file-input" id="inputGroupFile02">
<label class="custom-file-label" for="inputGroupFile02" aria-describedby="inputGroupFileAddon02">Choose file</label>
</div>
<div class="input-group-append">
<span class="input-group-text" id="inputGroupFileAddon02">Upload</span>
</div>
</div>
<div class="input-group mb-3">
<div class="input-group-prepend">
<button class="btn btn-outline-secondary" type="button" id="inputGroupFileAddon03">Button</button>
</div>
<div class="custom-file">
<input type="file" class="custom-file-input" id="inputGroupFile03" aria-describedby="inputGroupFileAddon03">
<label class="custom-file-label" for="inputGroupFile03">Choose file</label>
</div>
</div>
<div class="input-group">
<div class="custom-file">
<input type="file" class="custom-file-input" id="inputGroupFile04" aria-describedby="inputGroupFileAddon04">
<label class="custom-file-label" for="inputGroupFile04">Choose file</label>
</div>
<div class="input-group-append">
<button class="btn btn-outline-secondary" type="button" id="inputGroupFileAddon04">Button</button>
</div>
</div>
Προσιτότητα
Βεβαιωθείτε ότι όλα τα στοιχεία ελέγχου φορμών έχουν ένα κατάλληλο προσβάσιμο όνομα, ώστε ο σκοπός τους να μπορεί να μεταδοθεί στους χρήστες υποστηρικτικών τεχνολογιών. Ο απλούστερος τρόπος για να επιτευχθεί αυτό είναι να χρησιμοποιήσετε ένα <label>
στοιχείο ή —στην περίπτωση των κουμπιών— να συμπεριλάβετε επαρκώς περιγραφικό κείμενο ως μέρος του <button>...</button>
περιεχομένου.
Για περιπτώσεις όπου δεν είναι δυνατό να συμπεριληφθεί ένα ορατό <label>
ή κατάλληλο περιεχόμενο κειμένου, υπάρχουν εναλλακτικοί τρόποι παρέχοντας ένα προσβάσιμο όνομα, όπως:
<label>
κρυφά στοιχεία χρησιμοποιώντας την.sr-only
κλάση- Δείχνοντας ένα υπάρχον στοιχείο που μπορεί να λειτουργήσει ως ετικέτα χρησιμοποιώντας
aria-labelledby
- Παροχή
title
χαρακτηριστικού - Ρυθμίστε ρητά το προσβάσιμο όνομα σε ένα στοιχείο χρησιμοποιώντας
aria-label
Εάν δεν υπάρχει κανένα από αυτά, οι υποστηρικτικές τεχνολογίες ενδέχεται να καταφύγουν στη χρήση του placeholder
χαρακτηριστικού ως εναλλακτικού για το προσβάσιμο όνομα <input>
και <textarea>
στοιχεία. Τα παραδείγματα σε αυτήν την ενότητα παρέχουν μερικές προτεινόμενες προσεγγίσεις για συγκεκριμένες περιπτώσεις.
Ενώ η χρήση οπτικά κρυφού περιεχομένου ( .sr-only
, aria-label
, και ακόμη και placeholder
περιεχόμενο, το οποίο εξαφανίζεται όταν ένα πεδίο φόρμας έχει περιεχόμενο) θα ωφελήσει τους χρήστες υποστηρικτικής τεχνολογίας, η έλλειψη ορατού κειμένου ετικέτας μπορεί να εξακολουθεί να είναι προβληματική για ορισμένους χρήστες. Κάποια μορφή ορατής ετικέτας είναι γενικά η καλύτερη προσέγγιση, τόσο για προσβασιμότητα όσο και για χρηστικότητα.