Borang
Contoh dan garis panduan penggunaan untuk gaya kawalan borang, pilihan reka letak dan komponen tersuai untuk mencipta pelbagai bentuk.
Gambaran keseluruhan
Kawalan borang Bootstrap berkembang pada gaya borang Dibut semula kami dengan kelas. Gunakan kelas ini untuk ikut serta dalam paparan tersuai mereka untuk pemaparan yang lebih konsisten merentas penyemak imbas dan peranti.
Pastikan anda menggunakan type
atribut yang sesuai pada semua input (cth, email
untuk alamat e-mel atau number
untuk maklumat berangka) untuk memanfaatkan kawalan input yang lebih baharu seperti pengesahan e-mel, pemilihan nombor dan banyak lagi.
Berikut ialah contoh pantas untuk menunjukkan gaya borang Bootstrap. Teruskan membaca untuk mendapatkan dokumentasi tentang kelas yang diperlukan, susun atur borang dan banyak lagi.
<form>
<div class="form-group">
<label for="exampleInputEmail1">Email address</label>
<input type="email" class="form-control" id="exampleInputEmail1" aria-describedby="emailHelp">
<small id="emailHelp" class="form-text text-muted">We'll never share your email with anyone else.</small>
</div>
<div class="form-group">
<label for="exampleInputPassword1">Password</label>
<input type="password" class="form-control" id="exampleInputPassword1">
</div>
<div class="form-group form-check">
<input type="checkbox" class="form-check-input" id="exampleCheck1">
<label class="form-check-label" for="exampleCheck1">Check me out</label>
</div>
<button type="submit" class="btn btn-primary">Submit</button>
</form>
Kawalan borang
Kawalan bentuk teks—seperti <input>
s, <select>
s dan <textarea>
s—digayakan dengan .form-control
kelas. Termasuk adalah gaya untuk penampilan umum, keadaan fokus, saiz dan banyak lagi.
Pastikan anda meneroka borang tersuai kami untuk menggayakan lagi <select>
.
<form>
<div class="form-group">
<label for="exampleFormControlInput1">Email address</label>
<input type="email" class="form-control" id="exampleFormControlInput1" placeholder="[email protected]">
</div>
<div class="form-group">
<label for="exampleFormControlSelect1">Example select</label>
<select class="form-control" id="exampleFormControlSelect1">
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
</select>
</div>
<div class="form-group">
<label for="exampleFormControlSelect2">Example multiple select</label>
<select multiple class="form-control" id="exampleFormControlSelect2">
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
</select>
</div>
<div class="form-group">
<label for="exampleFormControlTextarea1">Example textarea</label>
<textarea class="form-control" id="exampleFormControlTextarea1" rows="3"></textarea>
</div>
</form>
Untuk input fail, tukar .form-control
dengan .form-control-file
.
<form>
<div class="form-group">
<label for="exampleFormControlFile1">Example file input</label>
<input type="file" class="form-control-file" id="exampleFormControlFile1">
</div>
</form>
Saiz
Tetapkan ketinggian menggunakan kelas seperti .form-control-lg
dan .form-control-sm
.
<input class="form-control form-control-lg" type="text" placeholder=".form-control-lg">
<input class="form-control" type="text" placeholder="Default input">
<input class="form-control form-control-sm" type="text" placeholder=".form-control-sm">
<select class="form-control form-control-lg">
<option>Large select</option>
</select>
<select class="form-control">
<option>Default select</option>
</select>
<select class="form-control form-control-sm">
<option>Small select</option>
</select>
Baca sahaja
Tambahkan readonly
atribut boolean pada input untuk mengelakkan pengubahsuaian nilai input. Input baca sahaja kelihatan lebih ringan (sama seperti input yang dilumpuhkan), tetapi mengekalkan kursor standard.
<input class="form-control" type="text" placeholder="Readonly input here..." readonly>
Teks biasa baca sahaja
Jika anda ingin mempunyai <input readonly>
elemen dalam borang anda digayakan sebagai teks biasa, gunakan .form-control-plaintext
kelas untuk mengalih keluar penggayaan medan borang lalai dan mengekalkan jidar dan pelapik yang betul.
<form>
<div class="form-group row">
<label for="staticEmail" class="col-sm-2 col-form-label">Email</label>
<div class="col-sm-10">
<input type="text" readonly class="form-control-plaintext" id="staticEmail" value="[email protected]">
</div>
</div>
<div class="form-group row">
<label for="inputPassword" class="col-sm-2 col-form-label">Password</label>
<div class="col-sm-10">
<input type="password" class="form-control" id="inputPassword">
</div>
</div>
</form>
<form class="form-inline">
<div class="form-group mb-2">
<label for="staticEmail2" class="sr-only">Email</label>
<input type="text" readonly class="form-control-plaintext" id="staticEmail2" value="[email protected]">
</div>
<div class="form-group mx-sm-3 mb-2">
<label for="inputPassword2" class="sr-only">Password</label>
<input type="password" class="form-control" id="inputPassword2" placeholder="Password">
</div>
<button type="submit" class="btn btn-primary mb-2">Confirm identity</button>
</form>
Input Julat
Tetapkan input julat boleh ditatal secara mendatar menggunakan .form-control-range
.
<form>
<div class="form-group">
<label for="formControlRange">Example Range input</label>
<input type="range" class="form-control-range" id="formControlRange">
</div>
</form>
Kotak semak dan radio
Kotak semak dan radio lalai ditambah baik dengan bantuan .form-check
, satu kelas untuk kedua-dua jenis input yang menambah baik reka letak dan tingkah laku elemen HTML mereka . Kotak pilihan adalah untuk memilih satu atau beberapa pilihan dalam senarai, manakala radio adalah untuk memilih satu pilihan daripada banyak.
Kotak semak dan radio yang dilumpuhkan disokong. Atribut disabled
akan menggunakan warna yang lebih cerah untuk membantu menunjukkan keadaan input.
Kotak semak dan butang radio menyokong pengesahan borang berasaskan HTML dan menyediakan label yang ringkas dan boleh diakses. Oleh itu, <input>
s dan <label>
s kami adalah unsur adik beradik berbanding dengan <input>
dalam a <label>
. Ini lebih bertele-tele kerana anda mesti menentukan id
dan for
atribut untuk mengaitkan <input>
dan <label>
.
Lalai (bertindan)
Secara lalai, sebarang bilangan kotak pilihan dan radio yang merupakan saudara terdekat akan disusun secara menegak dan dijarakkan dengan .form-check
.
<div class="form-check">
<input class="form-check-input" type="checkbox" value="" id="defaultCheck1">
<label class="form-check-label" for="defaultCheck1">
Default checkbox
</label>
</div>
<div class="form-check">
<input class="form-check-input" type="checkbox" value="" id="defaultCheck2" disabled>
<label class="form-check-label" for="defaultCheck2">
Disabled checkbox
</label>
</div>
<div class="form-check">
<input class="form-check-input" type="radio" name="exampleRadios" id="exampleRadios1" value="option1" checked>
<label class="form-check-label" for="exampleRadios1">
Default radio
</label>
</div>
<div class="form-check">
<input class="form-check-input" type="radio" name="exampleRadios" id="exampleRadios2" value="option2">
<label class="form-check-label" for="exampleRadios2">
Second default radio
</label>
</div>
<div class="form-check">
<input class="form-check-input" type="radio" name="exampleRadios" id="exampleRadios3" value="option3" disabled>
<label class="form-check-label" for="exampleRadios3">
Disabled radio
</label>
</div>
Dalam barisan
Kumpulan kotak semak atau radio pada baris mendatar yang sama dengan menambah .form-check-inline
pada mana-mana .form-check
.
<div class="form-check form-check-inline">
<input class="form-check-input" type="checkbox" id="inlineCheckbox1" value="option1">
<label class="form-check-label" for="inlineCheckbox1">1</label>
</div>
<div class="form-check form-check-inline">
<input class="form-check-input" type="checkbox" id="inlineCheckbox2" value="option2">
<label class="form-check-label" for="inlineCheckbox2">2</label>
</div>
<div class="form-check form-check-inline">
<input class="form-check-input" type="checkbox" id="inlineCheckbox3" value="option3" disabled>
<label class="form-check-label" for="inlineCheckbox3">3 (disabled)</label>
</div>
<div class="form-check form-check-inline">
<input class="form-check-input" type="radio" name="inlineRadioOptions" id="inlineRadio1" value="option1">
<label class="form-check-label" for="inlineRadio1">1</label>
</div>
<div class="form-check form-check-inline">
<input class="form-check-input" type="radio" name="inlineRadioOptions" id="inlineRadio2" value="option2">
<label class="form-check-label" for="inlineRadio2">2</label>
</div>
<div class="form-check form-check-inline">
<input class="form-check-input" type="radio" name="inlineRadioOptions" id="inlineRadio3" value="option3" disabled>
<label class="form-check-label" for="inlineRadio3">3 (disabled)</label>
</div>
Tanpa label
Tambahkan .position-static
pada input dalam .form-check
yang tidak mempunyai sebarang teks label. Ingat untuk tetap memberikan beberapa bentuk nama yang boleh diakses untuk teknologi bantuan (contohnya, menggunakan aria-label
).
<div class="form-check">
<input class="form-check-input position-static" type="checkbox" id="blankCheckbox" value="option1" aria-label="...">
</div>
<div class="form-check">
<input class="form-check-input position-static" type="radio" name="blankRadio" id="blankRadio1" value="option1" aria-label="...">
</div>
Susun atur
Memandangkan Bootstrap terpakai display: block
dan width: 100%
pada hampir semua kawalan borang kami, secara lalai borang akan disusun secara menegak. Kelas tambahan boleh digunakan untuk mengubah susun atur ini mengikut asas per-bentuk.
Bentuk kumpulan
Kelas .form-group
ialah cara termudah untuk menambah beberapa struktur pada borang. Ia menyediakan kelas fleksibel yang menggalakkan pengelompokan label, kawalan, teks bantuan pilihan dan pemesejan pengesahan borang yang betul. Secara lalai ia hanya terpakai margin-bottom
, tetapi ia mengambil gaya tambahan .form-inline
mengikut keperluan. Gunakannya dengan <fieldset>
s, <div>
s atau hampir mana-mana elemen lain.
<form>
<div class="form-group">
<label for="formGroupExampleInput">Example label</label>
<input type="text" class="form-control" id="formGroupExampleInput" placeholder="Example input placeholder">
</div>
<div class="form-group">
<label for="formGroupExampleInput2">Another label</label>
<input type="text" class="form-control" id="formGroupExampleInput2" placeholder="Another input placeholder">
</div>
</form>
Borang grid
Borang yang lebih kompleks boleh dibina menggunakan kelas grid kami. Gunakan ini untuk reka letak borang yang memerlukan berbilang lajur, lebar yang berbeza-beza dan pilihan penjajaran tambahan.
<form>
<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>
</div>
</form>
Borang baris
Anda juga boleh menukar .row
dengan .form-row
, variasi baris grid standard kami yang mengatasi talang lajur lalai untuk susun atur yang lebih ketat dan padat.
<form>
<div class="form-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>
</div>
</form>
Reka letak yang lebih kompleks juga boleh dibuat dengan sistem grid.
<form>
<div class="form-row">
<div class="form-group col-md-6">
<label for="inputEmail4">Email</label>
<input type="email" class="form-control" id="inputEmail4">
</div>
<div class="form-group col-md-6">
<label for="inputPassword4">Password</label>
<input type="password" class="form-control" id="inputPassword4">
</div>
</div>
<div class="form-group">
<label for="inputAddress">Address</label>
<input type="text" class="form-control" id="inputAddress" placeholder="1234 Main St">
</div>
<div class="form-group">
<label for="inputAddress2">Address 2</label>
<input type="text" class="form-control" id="inputAddress2" placeholder="Apartment, studio, or floor">
</div>
<div class="form-row">
<div class="form-group col-md-6">
<label for="inputCity">City</label>
<input type="text" class="form-control" id="inputCity">
</div>
<div class="form-group col-md-4">
<label for="inputState">State</label>
<select id="inputState" class="form-control">
<option selected>Choose...</option>
<option>...</option>
</select>
</div>
<div class="form-group col-md-2">
<label for="inputZip">Zip</label>
<input type="text" class="form-control" id="inputZip">
</div>
</div>
<div class="form-group">
<div class="form-check">
<input class="form-check-input" type="checkbox" id="gridCheck">
<label class="form-check-label" for="gridCheck">
Check me out
</label>
</div>
</div>
<button type="submit" class="btn btn-primary">Sign in</button>
</form>
Bentuk mendatar
Buat borang mendatar dengan grid dengan menambahkan .row
kelas untuk membentuk kumpulan dan menggunakan .col-*-*
kelas untuk menentukan lebar label dan kawalan anda. Pastikan anda menambah s .col-form-label
anda <label>
juga supaya ia berpusat secara menegak dengan kawalan borang yang berkaitan.
Kadangkala, anda mungkin perlu menggunakan utiliti margin atau padding untuk mencipta penjajaran sempurna yang anda perlukan. Sebagai contoh, kami telah mengalih keluar padding-top
label input radio bertindan kami untuk menjajarkan garis dasar teks dengan lebih baik.
<form>
<div class="form-group row">
<label for="inputEmail3" class="col-sm-2 col-form-label">Email</label>
<div class="col-sm-10">
<input type="email" class="form-control" id="inputEmail3">
</div>
</div>
<div class="form-group row">
<label for="inputPassword3" class="col-sm-2 col-form-label">Password</label>
<div class="col-sm-10">
<input type="password" class="form-control" id="inputPassword3">
</div>
</div>
<fieldset class="form-group row">
<legend class="col-form-label col-sm-2 float-sm-left pt-0">Radios</legend>
<div class="col-sm-10">
<div class="form-check">
<input class="form-check-input" type="radio" name="gridRadios" id="gridRadios1" value="option1" checked>
<label class="form-check-label" for="gridRadios1">
First radio
</label>
</div>
<div class="form-check">
<input class="form-check-input" type="radio" name="gridRadios" id="gridRadios2" value="option2">
<label class="form-check-label" for="gridRadios2">
Second radio
</label>
</div>
<div class="form-check disabled">
<input class="form-check-input" type="radio" name="gridRadios" id="gridRadios3" value="option3" disabled>
<label class="form-check-label" for="gridRadios3">
Third disabled radio
</label>
</div>
</div>
</fieldset>
<div class="form-group row">
<div class="col-sm-10 offset-sm-2">
<div class="form-check">
<input class="form-check-input" type="checkbox" id="gridCheck1">
<label class="form-check-label" for="gridCheck1">
Example checkbox
</label>
</div>
</div>
</div>
<div class="form-group row">
<div class="col-sm-10">
<button type="submit" class="btn btn-primary">Sign in</button>
</div>
</div>
</form>
Saiz label bentuk mendatar
Pastikan anda menggunakan .col-form-label-sm
atau .col-form-label-lg
kepada <label>
s atau <legend>
s anda untuk mengikut saiz .form-control-lg
dan .form-control-sm
.
<form>
<div class="form-group row">
<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="form-group row">
<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="form-group 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>
Saiz lajur
Seperti yang ditunjukkan dalam contoh sebelumnya, sistem grid kami membenarkan anda meletakkan sebarang nombor .col
s dalam a .row
atau .form-row
. Mereka akan membahagikan lebar yang tersedia sama rata antara mereka. Anda juga boleh memilih subset lajur anda untuk menggunakan lebih atau kurang ruang, manakala .col
s selebihnya membahagikan yang lain, dengan kelas lajur tertentu seperti .col-7
.
<form>
<div class="form-row">
<div class="col-7">
<input type="text" class="form-control" placeholder="City">
</div>
<div class="col">
<input type="text" class="form-control" placeholder="State">
</div>
<div class="col">
<input type="text" class="form-control" placeholder="Zip">
</div>
</div>
</form>
Auto-saiz
Contoh di bawah menggunakan utiliti flexbox untuk memusatkan kandungan secara menegak dan mengubahnya .col
supaya .col-auto
lajur anda hanya menggunakan ruang sebanyak yang diperlukan. Dengan kata lain, saiz lajur itu sendiri berdasarkan kandungannya.
<form>
<div class="form-row align-items-center">
<div class="col-auto">
<label class="sr-only" for="inlineFormInput">Name</label>
<input type="text" class="form-control mb-2" id="inlineFormInput" placeholder="Jane Doe">
</div>
<div class="col-auto">
<label class="sr-only" for="inlineFormInputGroup">Username</label>
<div class="input-group mb-2">
<div class="input-group-prepend">
<div class="input-group-text">@</div>
</div>
<input type="text" class="form-control" id="inlineFormInputGroup" placeholder="Username">
</div>
</div>
<div class="col-auto">
<div class="form-check mb-2">
<input class="form-check-input" type="checkbox" id="autoSizingCheck">
<label class="form-check-label" for="autoSizingCheck">
Remember me
</label>
</div>
</div>
<div class="col-auto">
<button type="submit" class="btn btn-primary mb-2">Submit</button>
</div>
</div>
</form>
Anda kemudian boleh mengadun semula itu sekali lagi dengan kelas lajur khusus saiz.
<form>
<div class="form-row align-items-center">
<div class="col-sm-3 my-1">
<label class="sr-only" for="inlineFormInputName">Name</label>
<input type="text" class="form-control" id="inlineFormInputName" placeholder="Jane Doe">
</div>
<div class="col-sm-3 my-1">
<label class="sr-only" for="inlineFormInputGroupUsername">Username</label>
<div class="input-group">
<div class="input-group-prepend">
<div class="input-group-text">@</div>
</div>
<input type="text" class="form-control" id="inlineFormInputGroupUsername" placeholder="Username">
</div>
</div>
<div class="col-auto my-1">
<div class="form-check">
<input class="form-check-input" type="checkbox" id="autoSizingCheck2">
<label class="form-check-label" for="autoSizingCheck2">
Remember me
</label>
</div>
</div>
<div class="col-auto my-1">
<button type="submit" class="btn btn-primary">Submit</button>
</div>
</div>
</form>
Dan sudah tentu kawalan borang tersuai disokong.
<form>
<div class="form-row align-items-center">
<div class="col-auto my-1">
<label class="mr-sm-2 sr-only" for="inlineFormCustomSelect">Preference</label>
<select class="custom-select mr-sm-2" id="inlineFormCustomSelect">
<option selected>Choose...</option>
<option value="1">One</option>
<option value="2">Two</option>
<option value="3">Three</option>
</select>
</div>
<div class="col-auto my-1">
<div class="custom-control custom-checkbox mr-sm-2">
<input type="checkbox" class="custom-control-input" id="customControlAutosizing">
<label class="custom-control-label" for="customControlAutosizing">Remember my preference</label>
</div>
</div>
<div class="col-auto my-1">
<button type="submit" class="btn btn-primary">Submit</button>
</div>
</div>
</form>
Borang sebaris
Gunakan .form-inline
kelas untuk memaparkan satu siri label, kawalan borang dan butang pada satu baris mendatar. Kawalan borang dalam borang sebaris berbeza sedikit daripada keadaan lalainya.
- Kawalan ialah
display: flex
, meruntuhkan mana-mana ruang putih HTML dan membenarkan anda menyediakan kawalan penjajaran dengan utiliti jarak dan kotak fleksibel . - Kumpulan kawalan dan input diterima
width: auto
untuk mengatasi lalai Bootstrapwidth: 100%
. - Kawalan hanya kelihatan sebaris dalam port pandangan yang sekurang-kurangnya 576px lebar untuk mengambil kira port pandangan sempit pada peranti mudah alih.
Anda mungkin perlu menangani secara manual lebar dan penjajaran kawalan borang individu dengan utiliti jarak (seperti ditunjukkan di bawah). Akhir sekali, pastikan anda sentiasa menyertakan a <label>
dengan setiap kawalan borang, walaupun anda perlu menyembunyikannya daripada pelawat bukan pembaca skrin dengan .sr-only
.
<form class="form-inline">
<label class="sr-only" for="inlineFormInputName2">Name</label>
<input type="text" class="form-control mb-2 mr-sm-2" id="inlineFormInputName2" placeholder="Jane Doe">
<label class="sr-only" for="inlineFormInputGroupUsername2">Username</label>
<div class="input-group mb-2 mr-sm-2">
<div class="input-group-prepend">
<div class="input-group-text">@</div>
</div>
<input type="text" class="form-control" id="inlineFormInputGroupUsername2" placeholder="Username">
</div>
<div class="form-check mb-2 mr-sm-2">
<input class="form-check-input" type="checkbox" id="inlineFormCheck">
<label class="form-check-label" for="inlineFormCheck">
Remember me
</label>
</div>
<button type="submit" class="btn btn-primary mb-2">Submit</button>
</form>
Kawalan dan pilihan borang tersuai juga disokong.
<form class="form-inline">
<label class="my-1 mr-2" for="inlineFormCustomSelectPref">Preference</label>
<select class="custom-select my-1 mr-sm-2" id="inlineFormCustomSelectPref">
<option selected>Choose...</option>
<option value="1">One</option>
<option value="2">Two</option>
<option value="3">Three</option>
</select>
<div class="custom-control custom-checkbox my-1 mr-sm-2">
<input type="checkbox" class="custom-control-input" id="customControlInline">
<label class="custom-control-label" for="customControlInline">Remember my preference</label>
</div>
<button type="submit" class="btn btn-primary my-1">Submit</button>
</form>
Alternatif kepada label tersembunyi
Teknologi bantuan seperti pembaca skrin akan menghadapi masalah dengan borang anda jika anda tidak menyertakan label untuk setiap input. Untuk borang sebaris ini, anda boleh menyembunyikan label menggunakan .sr-only
kelas. Terdapat kaedah alternatif selanjutnya untuk menyediakan label untuk teknologi bantuan, seperti aria-label
, aria-labelledby
atau title
atribut. Jika tiada satu pun daripada ini hadir, teknologi bantuan boleh menggunakan placeholder
atribut, jika ada, tetapi ambil perhatian bahawa penggunaan placeholder
sebagai pengganti kaedah pelabelan lain tidak digalakkan.
Teks bantuan
Teks bantuan peringkat blok dalam borang boleh dibuat menggunakan .form-text
(sebelum ini dikenali sebagai .help-block
dalam v3). Teks bantuan sebaris boleh dilaksanakan secara fleksibel menggunakan mana-mana elemen HTML sebaris dan kelas utiliti seperti .text-muted
.
Mengaitkan teks bantuan dengan kawalan borang
Teks bantuan harus dikaitkan secara eksplisit dengan kawalan borang yang berkaitan dengan penggunaan aria-describedby
atribut. Ini akan memastikan bahawa teknologi bantuan—seperti pembaca skrin—akan mengumumkan teks bantuan ini apabila pengguna memfokus atau memasuki kawalan.
Teks bantuan di bawah input boleh digayakan dengan .form-text
. Kelas ini termasuk display: block
dan menambah beberapa margin atas untuk jarak yang mudah daripada input di atas.
<label for="inputPassword5">Password</label>
<input type="password" id="inputPassword5" class="form-control" aria-describedby="passwordHelpBlock">
<small id="passwordHelpBlock" class="form-text text-muted">
Your password must be 8-20 characters long, contain letters and numbers, and must not contain spaces, special characters, or emoji.
</small>
Teks sebaris boleh menggunakan mana-mana elemen HTML sebaris biasa (sama ada <small>
, <span>
, atau sesuatu yang lain) dengan tidak lebih daripada kelas utiliti.
<form class="form-inline">
<div class="form-group">
<label for="inputPassword6">Password</label>
<input type="password" id="inputPassword6" class="form-control mx-sm-3" aria-describedby="passwordHelpInline">
<small id="passwordHelpInline" class="text-muted">
Must be 8-20 characters long.
</small>
</div>
</form>
Borang dilumpuhkan
Tambahkan disabled
atribut boolean pada input untuk menghalang interaksi pengguna dan menjadikannya kelihatan lebih ringan.
<input class="form-control" id="disabledInput" type="text" placeholder="Disabled input here..." disabled>
Tambahkan disabled
atribut pada a <fieldset>
untuk melumpuhkan semua kawalan di dalamnya.
<form>
<fieldset disabled>
<legend>Disabled fieldset example</legend>
<div class="form-group">
<label for="disabledTextInput">Disabled input</label>
<input type="text" id="disabledTextInput" class="form-control" placeholder="Disabled input">
</div>
<div class="form-group">
<label for="disabledSelect">Disabled select menu</label>
<select id="disabledSelect" class="form-control">
<option>Disabled select</option>
</select>
</div>
<div class="form-group">
<div class="form-check">
<input class="form-check-input" type="checkbox" id="disabledFieldsetCheck" disabled>
<label class="form-check-label" for="disabledFieldsetCheck">
Can't check this
</label>
</div>
</div>
<button type="submit" class="btn btn-primary">Submit</button>
</fieldset>
</form>
Kaveat dengan sauh
Penyemak imbas menganggap semua kawalan bentuk asli ( <input>
, <select>
, dan <button>
elemen) di dalam a <fieldset disabled>
sebagai dilumpuhkan, menghalang interaksi papan kekunci dan tetikus padanya.
Walau bagaimanapun, jika borang anda juga termasuk elemen seperti butang tersuai seperti <a ... class="btn btn-*">
, ini hanya akan diberikan gaya pointer-events: none
. Seperti yang dinyatakan dalam bahagian tentang keadaan dilumpuhkan untuk butang (dan khususnya dalam sub-bahagian untuk elemen sauh), sifat CSS ini belum lagi diseragamkan dan tidak disokong sepenuhnya dalam Internet Explorer 10. Kawalan berasaskan sauh juga akan tetap boleh fokus dan boleh dikendalikan menggunakan papan kekunci. Anda mesti mengubah suai kawalan ini secara manual dengan menambah tabindex="-1"
untuk menghalangnya daripada menerima fokus dan memberi aria-disabled="disabled"
isyarat kepada keadaan mereka kepada teknologi bantuan.
Keserasian merentas pelayar
Walaupun Bootstrap akan menggunakan gaya ini dalam semua penyemak imbas, Internet Explorer 11 dan ke bawah tidak menyokong sepenuhnya disabled
atribut pada <fieldset>
. Gunakan JavaScript tersuai untuk melumpuhkan set medan dalam penyemak imbas ini.
Pengesahan
Berikan maklum balas yang berharga dan boleh diambil tindakan kepada pengguna anda dengan pengesahan borang HTML5– tersedia dalam semua penyemak imbas kami yang disokong . Pilih daripada maklum balas pengesahan lalai penyemak imbas, atau laksanakan mesej tersuai dengan kelas terbina dalam dan JavaScript pemula kami.
Bagaimana ia berfungsi
Begini cara pengesahan borang berfungsi dengan Bootstrap:
- Pengesahan borang HTML digunakan melalui dua kelas pseudo CSS
:invalid
dan:valid
. Ia terpakai kepada<input>
,<select>
, dan<textarea>
elemen. - Bootstrap merangkumi skop
:invalid
dan:valid
gaya kepada kelas induk.was-validated
, biasanya digunakan pada<form>
. Jika tidak, sebarang medan yang diperlukan tanpa nilai akan dipaparkan sebagai tidak sah pada pemuatan halaman. Dengan cara ini, anda boleh memilih masa untuk mengaktifkannya (biasanya selepas penyerahan borang cuba). - Untuk menetapkan semula penampilan borang (contohnya, dalam kes penyerahan borang dinamik menggunakan AJAX), alih keluar
.was-validated
kelas daripada<form>
sekali lagi selepas penyerahan. - Sebagai sandaran,
.is-invalid
dan.is-valid
kelas boleh digunakan dan bukannya kelas pseudo untuk pengesahan sisi pelayan . Mereka tidak memerlukan.was-validated
kelas ibu bapa. - Disebabkan oleh kekangan dalam cara CSS berfungsi, kami tidak boleh (pada masa ini) menggunakan gaya pada
<label>
yang datang sebelum kawalan borang dalam DOM tanpa bantuan JavaScript tersuai. - Semua penyemak imbas moden menyokong API pengesahan kekangan , satu siri kaedah JavaScript untuk mengesahkan kawalan borang.
- Mesej maklum balas mungkin menggunakan lalai penyemak imbas (berbeza untuk setiap penyemak imbas, dan tidak boleh digayakan melalui CSS) atau gaya maklum balas tersuai kami dengan HTML dan CSS tambahan.
- Anda boleh memberikan mesej kesahan tersuai dengan
setCustomValidity
dalam JavaScript.
Dengan itu, pertimbangkan tunjuk cara berikut untuk gaya pengesahan borang tersuai kami, kelas sisi pelayan pilihan dan lalai penyemak imbas.
Gaya tersuai
Untuk mesej pengesahan borang Bootstrap tersuai, anda perlu menambah novalidate
atribut boolean pada <form>
. Ini melumpuhkan petua alat maklum balas lalai penyemak imbas, tetapi masih menyediakan akses kepada API pengesahan borang dalam JavaScript. Cuba hantar borang di bawah; JavaScript kami akan memintas butang hantar dan menyampaikan maklum balas kepada anda. Apabila cuba menyerahkan, anda akan melihat gaya :invalid
dan :valid
digunakan pada kawalan borang anda.
Gaya maklum balas tersuai menggunakan warna tersuai, jidar, gaya fokus dan ikon latar belakang untuk menyampaikan maklum balas dengan lebih baik. Ikon latar belakang untuk <select>
s hanya tersedia dengan .custom-select
, dan bukan .form-control
.
<form class="needs-validation" novalidate>
<div class="form-row">
<div class="col-md-6 mb-3">
<label for="validationCustom01">First name</label>
<input type="text" class="form-control" id="validationCustom01" value="Mark" required>
<div class="valid-feedback">
Looks good!
</div>
</div>
<div class="col-md-6 mb-3">
<label for="validationCustom02">Last name</label>
<input type="text" class="form-control" id="validationCustom02" value="Otto" required>
<div class="valid-feedback">
Looks good!
</div>
</div>
</div>
<div class="form-row">
<div class="col-md-6 mb-3">
<label for="validationCustom03">City</label>
<input type="text" class="form-control" id="validationCustom03" required>
<div class="invalid-feedback">
Please provide a valid city.
</div>
</div>
<div class="col-md-3 mb-3">
<label for="validationCustom04">State</label>
<select class="custom-select" id="validationCustom04" required>
<option selected disabled value="">Choose...</option>
<option>...</option>
</select>
<div class="invalid-feedback">
Please select a valid state.
</div>
</div>
<div class="col-md-3 mb-3">
<label for="validationCustom05">Zip</label>
<input type="text" class="form-control" id="validationCustom05" required>
<div class="invalid-feedback">
Please provide a valid zip.
</div>
</div>
</div>
<div class="form-group">
<div class="form-check">
<input class="form-check-input" type="checkbox" value="" id="invalidCheck" required>
<label class="form-check-label" for="invalidCheck">
Agree to terms and conditions
</label>
<div class="invalid-feedback">
You must agree before submitting.
</div>
</div>
</div>
<button class="btn btn-primary" type="submit">Submit form</button>
</form>
<script>
// Example starter JavaScript for disabling form submissions if there are invalid fields
(function() {
'use strict';
window.addEventListener('load', function() {
// Fetch all the forms we want to apply custom Bootstrap validation styles to
var forms = document.getElementsByClassName('needs-validation');
// Loop over them and prevent submission
var validation = Array.prototype.filter.call(forms, function(form) {
form.addEventListener('submit', function(event) {
if (form.checkValidity() === false) {
event.preventDefault();
event.stopPropagation();
}
form.classList.add('was-validated');
}, false);
});
}, false);
})();
</script>
Penyemak imbas lalai
Tidak berminat dengan mesej maklum balas pengesahan tersuai atau menulis JavaScript untuk menukar tingkah laku borang? Semua baik, anda boleh menggunakan lalai penyemak imbas. Cuba hantar borang di bawah. Bergantung pada penyemak imbas dan OS anda, anda akan melihat gaya maklum balas yang sedikit berbeza.
Walaupun gaya maklum balas ini tidak boleh digayakan dengan CSS, anda masih boleh menyesuaikan teks maklum balas melalui JavaScript.
<form>
<div class="form-row">
<div class="col-md-6 mb-3">
<label for="validationDefault01">First name</label>
<input type="text" class="form-control" id="validationDefault01" value="Mark" required>
</div>
<div class="col-md-6 mb-3">
<label for="validationDefault02">Last name</label>
<input type="text" class="form-control" id="validationDefault02" value="Otto" required>
</div>
</div>
<div class="form-row">
<div class="col-md-6 mb-3">
<label for="validationDefault03">City</label>
<input type="text" class="form-control" id="validationDefault03" required>
</div>
<div class="col-md-3 mb-3">
<label for="validationDefault04">State</label>
<select class="custom-select" id="validationDefault04" required>
<option selected disabled value="">Choose...</option>
<option>...</option>
</select>
</div>
<div class="col-md-3 mb-3">
<label for="validationDefault05">Zip</label>
<input type="text" class="form-control" id="validationDefault05" required>
</div>
</div>
<div class="form-group">
<div class="form-check">
<input class="form-check-input" type="checkbox" value="" id="invalidCheck2" required>
<label class="form-check-label" for="invalidCheck2">
Agree to terms and conditions
</label>
</div>
</div>
<button class="btn btn-primary" type="submit">Submit form</button>
</form>
Bahagian pelayan
Kami mengesyorkan menggunakan pengesahan pihak klien, tetapi sekiranya anda memerlukan pengesahan pihak pelayan, anda boleh menunjukkan medan borang yang tidak sah dan sah dengan .is-invalid
dan .is-valid
. Ambil perhatian bahawa .invalid-feedback
juga disokong dengan kelas ini.
Untuk medan tidak sah, pastikan maklum balas/mesej ralat tidak sah dikaitkan dengan medan borang yang berkaitan menggunakan aria-describedby
. Atribut ini membenarkan lebih daripada satu id
untuk dirujuk, sekiranya medan sudah menunjuk kepada teks bentuk tambahan.
<form>
<div class="form-row">
<div class="col-md-6 mb-3">
<label for="validationServer01">First name</label>
<input type="text" class="form-control is-valid" id="validationServer01" value="Mark" required>
<div class="valid-feedback">
Looks good!
</div>
</div>
<div class="col-md-6 mb-3">
<label for="validationServer02">Last name</label>
<input type="text" class="form-control is-valid" id="validationServer02" value="Otto" required>
<div class="valid-feedback">
Looks good!
</div>
</div>
</div>
<div class="form-row">
<div class="col-md-6 mb-3">
<label for="validationServer03">City</label>
<input type="text" class="form-control is-invalid" id="validationServer03" aria-describedby="validationServer03Feedback" required>
<div id="validationServer03Feedback" class="invalid-feedback">
Please provide a valid city.
</div>
</div>
<div class="col-md-3 mb-3">
<label for="validationServer04">State</label>
<select class="custom-select is-invalid" id="validationServer04" aria-describedby="validationServer04Feedback" required>
<option selected disabled value="">Choose...</option>
<option>...</option>
</select>
<div id="validationServer04Feedback" class="invalid-feedback">
Please select a valid state.
</div>
</div>
<div class="col-md-3 mb-3">
<label for="validationServer05">Zip</label>
<input type="text" class="form-control is-invalid" id="validationServer05" aria-describedby="validationServer05Feedback" required>
<div id="validationServer05Feedback" class="invalid-feedback">
Please provide a valid zip.
</div>
</div>
</div>
<div class="form-group">
<div class="form-check">
<input class="form-check-input is-invalid" type="checkbox" value="" id="invalidCheck3" aria-describedby="invalidCheck3Feedback" required>
<label class="form-check-label" for="invalidCheck3">
Agree to terms and conditions
</label>
<div id="invalidCheck3Feedback" class="invalid-feedback">
You must agree before submitting.
</div>
</div>
</div>
<button class="btn btn-primary" type="submit">Submit form</button>
</form>
Elemen yang disokong
Gaya pengesahan tersedia untuk kawalan dan komponen borang berikut:
<input>
s dan<textarea>
s dengan.form-control
<select>
s dengan.form-control
atau.custom-select
.form-check
s.custom-checkbox
s dan.custom-radio
s.custom-file
<form class="was-validated">
<div class="mb-3">
<label for="validationTextarea">Textarea</label>
<textarea class="form-control is-invalid" id="validationTextarea" placeholder="Required example textarea" required></textarea>
<div class="invalid-feedback">
Please enter a message in the textarea.
</div>
</div>
<div class="custom-control custom-checkbox mb-3">
<input type="checkbox" class="custom-control-input" id="customControlValidation1" required>
<label class="custom-control-label" for="customControlValidation1">Check this custom checkbox</label>
<div class="invalid-feedback">Example invalid feedback text</div>
</div>
<div class="custom-control custom-radio">
<input type="radio" class="custom-control-input" id="customControlValidation2" name="radio-stacked" required>
<label class="custom-control-label" for="customControlValidation2">Toggle this custom radio</label>
</div>
<div class="custom-control custom-radio mb-3">
<input type="radio" class="custom-control-input" id="customControlValidation3" name="radio-stacked" required>
<label class="custom-control-label" for="customControlValidation3">Or toggle this other custom radio</label>
<div class="invalid-feedback">More example invalid feedback text</div>
</div>
<div class="mb-3">
<select class="custom-select" required>
<option value="">Choose...</option>
<option value="1">One</option>
<option value="2">Two</option>
<option value="3">Three</option>
</select>
<div class="invalid-feedback">Example invalid custom select feedback</div>
</div>
<div class="custom-file mb-3">
<input type="file" class="custom-file-input" id="validatedCustomFile" required>
<label class="custom-file-label" for="validatedCustomFile">Choose file...</label>
<div class="invalid-feedback">Example invalid custom file feedback</div>
</div>
<div class="mb-3">
<div class="input-group is-invalid">
<div class="input-group-prepend">
<span class="input-group-text" id="validatedInputGroupPrepend">@</span>
</div>
<input type="text" class="form-control is-invalid" aria-describedby="validatedInputGroupPrepend" required>
</div>
<div class="invalid-feedback">
Example invalid input group feedback
</div>
</div>
<div class="mb-3">
<div class="input-group is-invalid">
<div class="input-group-prepend">
<label class="input-group-text" for="validatedInputGroupSelect">Options</label>
</div>
<select class="custom-select" id="validatedInputGroupSelect" required>
<option value="">Choose...</option>
<option value="1">One</option>
<option value="2">Two</option>
<option value="3">Three</option>
</select>
</div>
<div class="invalid-feedback">
Example invalid input group feedback
</div>
</div>
<div class="input-group is-invalid">
<div class="custom-file">
<input type="file" class="custom-file-input" id="validatedInputGroupCustomFile" required>
<label class="custom-file-label" for="validatedInputGroupCustomFile">Choose file...</label>
</div>
<div class="input-group-append">
<button class="btn btn-outline-secondary" type="button">Button</button>
</div>
</div>
<div class="invalid-feedback">
Example invalid input group feedback
</div>
</form>
Petua alat
Jika reka letak borang anda membenarkannya, anda boleh menukar .{valid|invalid}-feedback
kelas untuk .{valid|invalid}-tooltip
kelas untuk memaparkan maklum balas pengesahan dalam petua alat gaya. Pastikan anda mempunyai ibu bapa position: relative
dengannya untuk kedudukan petua alat. Dalam contoh di bawah, kelas lajur kami sudah pun mempunyai ini, tetapi projek anda mungkin memerlukan persediaan alternatif.
<form class="needs-validation" novalidate>
<div class="form-row">
<div class="col-md-6 mb-3">
<label for="validationTooltip01">First name</label>
<input type="text" class="form-control" id="validationTooltip01" value="Mark" required>
<div class="valid-tooltip">
Looks good!
</div>
</div>
<div class="col-md-6 mb-3">
<label for="validationTooltip02">Last name</label>
<input type="text" class="form-control" id="validationTooltip02" value="Otto" required>
<div class="valid-tooltip">
Looks good!
</div>
</div>
</div>
<div class="form-row">
<div class="col-md-6 mb-3">
<label for="validationTooltip03">City</label>
<input type="text" class="form-control" id="validationTooltip03" required>
<div class="invalid-tooltip">
Please provide a valid city.
</div>
</div>
<div class="col-md-3 mb-3">
<label for="validationTooltip04">State</label>
<select class="custom-select" id="validationTooltip04" required>
<option selected disabled value="">Choose...</option>
<option>...</option>
</select>
<div class="invalid-tooltip">
Please select a valid state.
</div>
</div>
<div class="col-md-3 mb-3">
<label for="validationTooltip05">Zip</label>
<input type="text" class="form-control" id="validationTooltip05" required>
<div class="invalid-tooltip">
Please provide a valid zip.
</div>
</div>
</div>
<button class="btn btn-primary" type="submit">Submit form</button>
</form>
Menyesuaikan
Keadaan pengesahan boleh disesuaikan melalui Sass dengan $form-validation-states
peta. Terletak dalam _variables.scss
fail kami, peta Sass ini digelungkan untuk menjana keadaan lalai valid
/ invalid
pengesahan. Termasuk ialah peta bersarang untuk menyesuaikan warna dan ikon setiap negeri. Walaupun tiada negeri lain disokong oleh penyemak imbas, mereka yang menggunakan gaya tersuai boleh menambah maklum balas bentuk yang lebih kompleks dengan mudah.
Sila ambil perhatian bahawa kami tidak mengesyorkan menyesuaikan nilai ini tanpa mengubah suai form-validation-state
mixin.
// Sass map from `_variables.scss`
// Override this and recompile your Sass to generate different states
$form-validation-states: map-merge(
(
"valid": (
"color": $form-feedback-valid-color,
"icon": $form-feedback-icon-valid
),
"invalid": (
"color": $form-feedback-invalid-color,
"icon": $form-feedback-icon-invalid
)
),
$form-validation-states
);
// Loop from `_forms.scss`
// Any modifications to the above Sass map will be reflected in your compiled
// CSS via this loop.
@each $state, $data in $form-validation-states {
@include form-validation-state($state, map-get($data, color), map-get($data, icon));
}
Pengesahan kumpulan input
Untuk mengesan elemen yang memerlukan sudut bulat di dalam kumpulan input dengan pengesahan, kumpulan input memerlukan .has-validation
kelas tambahan.
<div class="input-group has-validation">
<div class="input-group-prepend">
<span class="input-group-text">@</span>
</div>
<input type="text" class="form-control" required>
<div class="invalid-feedback">
Please choose a username.
</div>
</div>
Borang tersuai
Untuk lebih banyak penyesuaian dan ketekalan penyemak imbas silang, gunakan elemen borang tersuai sepenuhnya kami untuk menggantikan lalai penyemak imbas. Ia dibina di atas penanda semantik dan boleh diakses, jadi ia adalah pengganti yang kukuh untuk sebarang kawalan bentuk lalai.
Kotak semak dan radio
Setiap kotak pilihan dan radio <input>
serta <label>
gandingan dibalut dengan <div>
untuk membuat kawalan tersuai kami. Dari segi struktur, ini adalah pendekatan yang sama seperti lalai kami .form-check
.
Kami menggunakan pemilih adik-beradik ( ~
) untuk semua <input>
keadaan kami—seperti :checked
—untuk menggayakan penunjuk bentuk tersuai kami dengan betul. Apabila digabungkan dengan .custom-control-label
kelas, kita juga boleh menggayakan teks untuk setiap item berdasarkan keadaan <input>
'.
Kami menyembunyikan lalai <input>
dengan opacity
dan menggunakan .custom-control-label
untuk membina penunjuk borang tersuai baharu di tempatnya dengan ::before
dan ::after
. Malangnya kami tidak boleh membina satu tersuai hanya daripada <input>
kerana CSS content
tidak berfungsi pada elemen itu.
Dalam keadaan yang ditandai, kami menggunakan ikon SVG terbenam base64 daripada Open Iconic . Ini memberikan kami kawalan terbaik untuk penggayaan dan kedudukan merentas penyemak imbas dan peranti.
Kotak semak
<div class="custom-control custom-checkbox">
<input type="checkbox" class="custom-control-input" id="customCheck1">
<label class="custom-control-label" for="customCheck1">Check this custom checkbox</label>
</div>
Kotak pilihan tersuai juga boleh menggunakan :indeterminate
kelas pseudo apabila ditetapkan secara manual melalui JavaScript (tiada atribut HTML tersedia untuk menentukannya).
Jika anda menggunakan jQuery, sesuatu seperti ini sudah memadai:
$('.your-checkbox').prop('indeterminate', true)
Radio
<div class="custom-control custom-radio">
<input type="radio" id="customRadio1" name="customRadio" class="custom-control-input">
<label class="custom-control-label" for="customRadio1">Toggle this custom radio</label>
</div>
<div class="custom-control custom-radio">
<input type="radio" id="customRadio2" name="customRadio" class="custom-control-input">
<label class="custom-control-label" for="customRadio2">Or toggle this other custom radio</label>
</div>
Dalam barisan
<div class="custom-control custom-radio custom-control-inline">
<input type="radio" id="customRadioInline1" name="customRadioInline" class="custom-control-input">
<label class="custom-control-label" for="customRadioInline1">Toggle this custom radio</label>
</div>
<div class="custom-control custom-radio custom-control-inline">
<input type="radio" id="customRadioInline2" name="customRadioInline" class="custom-control-input">
<label class="custom-control-label" for="customRadioInline2">Or toggle this other custom radio</label>
</div>
Dilumpuhkan
Kotak semak dan radio tersuai juga boleh dilumpuhkan. Tambahkan disabled
atribut boolean pada <input>
dan penunjuk tersuai serta perihalan label akan digayakan secara automatik.
<div class="custom-control custom-checkbox">
<input type="checkbox" class="custom-control-input" id="customCheckDisabled1" disabled>
<label class="custom-control-label" for="customCheckDisabled1">Check this custom checkbox</label>
</div>
<div class="custom-control custom-radio">
<input type="radio" name="radioDisabled" id="customRadioDisabled2" class="custom-control-input" disabled>
<label class="custom-control-label" for="customRadioDisabled2">Toggle this custom radio</label>
</div>
Suis
Suis mempunyai penanda kotak semak tersuai tetapi menggunakan .custom-switch
kelas untuk menghasilkan suis togol. Suis juga menyokong disabled
atribut.
<div class="custom-control custom-switch">
<input type="checkbox" class="custom-control-input" id="customSwitch1">
<label class="custom-control-label" for="customSwitch1">Toggle this switch element</label>
</div>
<div class="custom-control custom-switch">
<input type="checkbox" class="custom-control-input" disabled id="customSwitch2">
<label class="custom-control-label" for="customSwitch2">Disabled switch element</label>
</div>
Pilih menu
Menu tersuai <select>
hanya memerlukan kelas tersuai, .custom-select
untuk mencetuskan gaya tersuai. Gaya tersuai terhad kepada <select>
penampilan awal 's dan tidak boleh mengubah suai ' <option>
s kerana had penyemak imbas.
<select class="custom-select">
<option selected>Open this select menu</option>
<option value="1">One</option>
<option value="2">Two</option>
<option value="3">Three</option>
</select>
Anda juga boleh memilih daripada pilihan tersuai kecil dan besar untuk memadankan input teks bersaiz serupa kami.
<select class="custom-select custom-select-lg mb-3">
<option selected>Open this select menu</option>
<option value="1">One</option>
<option value="2">Two</option>
<option value="3">Three</option>
</select>
<select class="custom-select custom-select-sm">
<option selected>Open this select menu</option>
<option value="1">One</option>
<option value="2">Two</option>
<option value="3">Three</option>
</select>
Atribut multiple
juga disokong:
<select class="custom-select" multiple>
<option selected>Open this select menu</option>
<option value="1">One</option>
<option value="2">Two</option>
<option value="3">Three</option>
</select>
Seperti size
sifatnya:
<select class="custom-select" size="3">
<option selected>Open this select menu</option>
<option value="1">One</option>
<option value="2">Two</option>
<option value="3">Three</option>
</select>
Julat
<input type="range">
Buat kawalan tersuai dengan .custom-range
. Lagu (latar belakang) dan ibu jari (nilai) kedua-duanya digayakan untuk kelihatan sama merentas pelayar. Memandangkan hanya IE dan Firefox menyokong "mengisi" trek mereka dari kiri atau kanan ibu jari sebagai cara untuk menunjukkan kemajuan secara visual, kami tidak menyokongnya pada masa ini.
<label for="customRange1">Example range</label>
<input type="range" class="custom-range" id="customRange1">
Input julat mempunyai nilai tersirat untuk min
dan max
— 0
dan 100
, masing-masing. Anda boleh menentukan nilai baharu untuk mereka yang menggunakan atribut min
dan .max
<label for="customRange2">Example range</label>
<input type="range" class="custom-range" min="0" max="5" id="customRange2">
Secara lalai, julat input "snap" kepada nilai integer. Untuk menukar ini, anda boleh menentukan step
nilai. Dalam contoh di bawah, kami menggandakan bilangan langkah dengan menggunakan step="0.5"
.
<label for="customRange3">Example range</label>
<input type="range" class="custom-range" min="0" max="5" step="0.5" id="customRange3">
pelayar fail
Input fail adalah yang paling jelek daripada kumpulan itu dan memerlukan JavaScript tambahan jika anda ingin menyambungkannya dengan Pilih fail yang berfungsi… dan teks nama fail yang dipilih.
<div class="custom-file">
<input type="file" class="custom-file-input" id="customFile">
<label class="custom-file-label" for="customFile">Choose file</label>
</div>
Kami menyembunyikan fail lalai <input>
melalui opacity
dan sebaliknya menggayakan <label>
. Butang dijana dan diletakkan dengan ::after
. Akhir sekali, kami mengisytiharkan a width
dan height
pada <input>
untuk jarak yang sesuai untuk kandungan sekitar.
Menterjemah atau menyesuaikan rentetan dengan SCSS
Kelas :lang()
pseudo digunakan untuk membenarkan terjemahan teks "Semak imbas" ke dalam bahasa lain. Ganti atau tambah entri pada $custom-file-text
pembolehubah Sass dengan teg bahasa yang berkaitan dan rentetan setempat. Rentetan bahasa Inggeris boleh disesuaikan dengan cara yang sama. Sebagai contoh, berikut ialah cara seseorang boleh menambah terjemahan bahasa Sepanyol (kod bahasa Sepanyol ialah es
):
$custom-file-text: (
en: "Browse",
es: "Elegir"
);
Berikut adalah lang(es)
tindakan pada input fail tersuai untuk terjemahan bahasa Sepanyol:
<div class="custom-file">
<input type="file" class="custom-file-input" id="customFileLang" lang="es">
<label class="custom-file-label" for="customFileLang">Seleccionar Archivo</label>
</div>
Anda perlu menetapkan bahasa dokumen anda (atau subpokoknya) dengan betul agar teks yang betul dapat ditunjukkan. Ini boleh dilakukan menggunakan atributlang
pada elemen<html>
atau Content-Language
pengepala HTTP , antara kaedah lain.
Menterjemah atau menyesuaikan rentetan dengan HTML
Bootstrap juga menyediakan cara untuk menterjemah teks "Semak imbas" dalam HTML dengan data-browse
atribut yang boleh ditambahkan pada label input tersuai (contoh dalam bahasa Belanda):
<div class="custom-file">
<input type="file" class="custom-file-input" id="customFileLangHTML">
<label class="custom-file-label" for="customFileLangHTML" data-browse="Bestand kiezen">Voeg je document toe</label>
</div>