Formlar
Form denetimi stilleri, düzen seçenekleri ve çok çeşitli formlar oluşturmaya yönelik özel bileşenler için örnekler ve kullanım yönergeleri.
genel bakış
Bootstrap'in form kontrolleri , sınıflarla Yeniden Başlatılan form stillerimizi genişletir. Tarayıcılar ve cihazlar arasında daha tutarlı bir işleme için özelleştirilmiş ekranlarını seçmek için bu sınıfları kullanın.
E -posta doğrulama, numara seçimi ve daha fazlası gibi daha yeni giriş kontrollerinden yararlanmak için tüm girişlerde (örneğin, e-posta adresi veya sayısal bilgiler için) uygun bir type
öznitelik kullandığınızdan emin olun .email
number
Bootstrap'in form stillerini göstermek için hızlı bir örnek. Gerekli sınıflar, form düzeni ve daha fazlasıyla ilgili belgeler için okumaya devam edin.
<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>
Form kontrolleri
Metinsel form denetimleri ( <input>
s, <select>
s ve s gibi) sınıfa <textarea>
göre biçimlendirilir . .form-control
Genel görünüm, odak durumu, boyutlandırma ve daha fazlası için stiller dahildir.
Daha fazla stil için özel formlarımızı keşfettiğinizden emin olun <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>
Dosya girişleri için, .form-control
for .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>
boyutlandırma
.form-control-lg
ve gibi sınıfları kullanarak yükseklikleri ayarlayın .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>
Sadece oku
readonly
Girdinin değerinin değiştirilmesini önlemek için bir girdiye boolean niteliğini ekleyin . Salt okunur girişler daha açık görünür (tıpkı devre dışı bırakılmış girişler gibi), ancak standart imleci korur.
<input class="form-control" type="text" placeholder="Readonly input here..." readonly>
Salt okunur düz metin
<input readonly>
Formunuzdaki öğelerin düz metin olarak biçimlendirilmesini istiyorsanız .form-control-plaintext
, varsayılan form alanı stilini kaldırmak ve doğru kenar boşluğunu ve dolguyu korumak için sınıfı kullanın.
<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>
Aralık Girişleri
kullanarak yatay olarak kaydırılabilir aralık girişlerini ayarlayın .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>
Onay kutuları ve radyolar
Varsayılan onay kutuları ve radyolar , HTML öğelerinin düzenini ve davranışını iyileştiren her iki giriş türü için tek bir sınıf yardımıyla .form-check
geliştirilir . Onay kutuları bir listedeki bir veya birkaç seçeneği seçmek içindir, radyolar ise birçok seçenek arasından birini seçmek içindir.
Devre dışı bırakılmış onay kutuları ve radyolar desteklenir. disabled
Öznitelik, girişin durumunu belirtmek için daha açık bir renk uygular .
Onay kutuları ve radyo düğmeleri, HTML tabanlı form doğrulamasını destekler ve özlü, erişilebilir etiketler sağlar. Bu nedenle, <input>
s ve s öğelerimiz, a içindeki bir <label>
öğenin aksine kardeş öğelerdir . Bu biraz daha ayrıntılıdır, çünkü belirtmeniz gerekir ve ve ile ilişkilendirmek için nitelikler .<input>
<label>
id
for
<input>
<label>
Varsayılan (yığılmış)
Varsayılan olarak, hemen kardeş olan herhangi bir sayıda onay kutusu ve telsiz dikey olarak yığılır ve ile uygun şekilde aralıklanır .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>
Çizgide
.form-check-inline
Herhangi birine ekleyerek onay kutularını veya radyoları aynı yatay satırda gruplayın .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>
etiketsiz
İçinde etiket metni olmayan .position-static
girdilere ekleyin . .form-check
Yardımcı teknolojiler için bir tür erişilebilir ad sağlamayı unutmayın (örneğin, kullanarak 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>
Düzen
Bootstrap display: block
ve width: 100%
hemen hemen tüm form kontrollerimiz için geçerli olduğundan, formlar varsayılan olarak dikey olarak istiflenir. Bu düzeni form bazında değiştirmek için ek sınıflar kullanılabilir.
Grup grupları
Sınıf .form-group
, formlara yapı eklemenin en kolay yoludur. Etiketlerin, kontrollerin, isteğe bağlı yardım metninin ve form doğrulama iletilerinin uygun şekilde gruplandırılmasını teşvik eden esnek bir sınıf sağlar. Varsayılan olarak yalnızca geçerlidir margin-bottom
, ancak gerektiğinde ek stiller alır .form-inline
. Onu <fieldset>
s, <div>
s veya hemen hemen başka herhangi bir öğeyle kullanın.
<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>
Form ızgarası
Grid sınıflarımız kullanılarak daha karmaşık formlar oluşturulabilir. Bunları birden çok sütun, çeşitli genişlikler ve ek hizalama seçenekleri gerektiren form düzenleri için kullanın.
<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>
Form satırı
Ayrıca , daha sıkı ve daha kompakt düzenler için varsayılan sütun oluklarını geçersiz kılan standart ızgara sıramızın bir varyasyonu olan ile .row
takas edebilirsiniz..form-row
<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>
Izgara sistemi ile daha karmaşık düzenler de oluşturulabilir.
<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>
yatay form
.row
Grupları oluşturmak için sınıfı ekleyerek ve .col-*-*
etiketlerinizin ve denetimlerinizin genişliğini belirtmek için sınıfları kullanarak ızgarayla yatay formlar oluşturun. mutlaka .col-form-label
ekleyin<label>
İlgili form kontrolleriyle dikey olarak ortalanmaları için s'lerinizi de
Bazen, ihtiyacınız olan mükemmel hizalamayı oluşturmak için kenar boşluğu veya dolgu yardımcı programlarını kullanmanız gerekebilir. Örneğin, padding-top
metin taban çizgisini daha iyi hizalamak için yığılmış radyo girişleri etiketimizi kaldırdık.
<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>
Yatay form etiket boyutlandırma
ve boyutunu doğru bir şekilde takip etmek için veya .col-form-label-sm
s veya s'nizi kullandığınızdan emin olun ..col-form-label-lg
<label>
<legend>
.form-control-lg
.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>
Sütun boyutlandırma
Önceki örneklerde gösterildiği gibi, ızgara sistemimiz a veya .col
içine istediğiniz sayıda s yerleştirmenize izin verir . Mevcut genişliği aralarında eşit olarak bölerler. Ayrıca, daha fazla veya daha az yer kaplamak için sütunlarınızın bir alt kümesini seçebilir, geri kalanlar ise aşağıdaki gibi belirli sütun sınıflarıyla geri kalanını eşit olarak böler ..row
.form-row
.col
.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>
Otomatik boyutlandırma
Aşağıdaki örnek, içeriği dikey olarak ortalamak için bir flexbox yardımcı programı kullanır ve sütunlarınız yalnızca gerektiği kadar yer kaplayacak şekilde .col
değişir . .col-auto
Başka bir deyişle, sütun, içeriğe göre boyutlandırılır.
<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>
Daha sonra bunu boyuta özel sütun sınıflarıyla yeniden karıştırabilirsiniz.
<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>
Ve elbette özel form kontrolleri desteklenir.
<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>
satır içi formlar
.form-inline
Tek bir yatay satırda bir dizi etiket, form denetimi ve düğme görüntülemek için sınıfı kullanın . Satır içi formlardaki form kontrolleri, varsayılan durumlarından biraz farklıdır.
- Kontroller , herhangi bir HTML beyaz alanını daraltır ve boşluk ve esnek kutu yardımcı programları
display: flex
ile hizalama kontrolü sağlamanıza izin verir . width: auto
Önyükleme varsayılanını geçersiz kılmak için denetimler ve giriş grupları alınırwidth: 100%
.- Kontroller , yalnızca mobil cihazlarda dar görüntü alanlarını hesaba katmak için en az 576 piksel genişliğindeki görüntü alanlarında satır içi görünür .
Boşluk yardımcı programlarıyla (aşağıda gösterildiği gibi) ayrı form denetimlerinin genişliğini ve hizalamasını manuel olarak ele almanız gerekebilir . <label>
Son olarak, ekran okuyucu olmayan ziyaretçilerden gizlemeniz gerekse bile, her form denetimine her zaman bir a eklediğinizden emin olun .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>
Özel form kontrolleri ve seçimleri de desteklenir.
<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>
Gizli etiketlere alternatifler
Her giriş için bir etiket eklemezseniz, ekran okuyucular gibi yardımcı teknolojiler formlarınızda sorun yaşar. .sr-only
Bu satır içi formlar için sınıfı kullanarak etiketleri gizleyebilirsiniz . aria-label
, aria-labelledby
veya title
özniteliği gibi yardımcı teknolojiler için bir etiket sağlamanın başka alternatif yöntemleri de vardır . Bunların hiçbiri yoksa, yardımcı teknolojiler placeholder
, varsa, özniteliği kullanmaya başvurabilir, ancak placeholder
diğer etiketleme yöntemlerinin yerine kullanılmasının tavsiye edilmediğine dikkat edin.
Yardım Metni
Formlardaki blok düzeyinde yardım metni .form-text
(önceden .help-block
v3'te biliniyordu) kullanılarak oluşturulabilir. Satır içi yardım metni, herhangi bir satır içi HTML öğesi ve gibi yardımcı program sınıfları kullanılarak esnek bir şekilde uygulanabilir .text-muted
.
Yardım metnini form kontrolleriyle ilişkilendirme
Yardım metni, özniteliği kullanmakla ilgili olduğu form denetimiyle açıkça ilişkilendirilmelidir aria-describedby
. Bu, ekran okuyucular gibi yardımcı teknolojilerin, kullanıcı odaklandığında veya kontrole girdiğinde bu yardım metnini duyurmasını sağlayacaktır.
Girişlerin altındaki yardım metni ile biçimlendirilebilir .form-text
. Bu sınıf, display: block
yukarıdaki girdilerden kolay boşluk bırakmak için bir miktar üst kenar boşluğu içerir ve ekler.
<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>
Satır içi metin, herhangi bir tipik satır içi HTML öğesini (bir <small>
, <span>
veya başka bir şey olsun) bir yardımcı program sınıfından başka bir şey olmadan kullanabilir.
<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>
Engelli formları
Ekledisabled
Kullanıcı etkileşimlerini önlemek ve daha açık görünmesini sağlamak için bir girdiye boolean niteliğini
<input class="form-control" id="disabledInput" type="text" placeholder="Disabled input here..." disabled>
İçindeki tüm kontrolleri devre dışı bırakmak için disabled
özniteliği a öğesine ekleyin .<fieldset>
<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>
Çapalı uyarı
Tarayıcılar, tüm yerel form denetimlerini ( <input>
, <select>
ve <button>
öğelerini) bir<fieldset disabled>
devre dışı olarak kabul ederek üzerlerinde hem klavye hem de fare etkileşimlerini engeller.
Ancak, formunuz gibi özel düğme benzeri öğeler de içeriyorsa <a ... class="btn btn-*">
, bunlara yalnızca pointer-events: none
. Düğmelerin devre dışı bırakılma durumuyla ilgili bölümde (ve özellikle bağlantı öğelerinin alt bölümünde) belirtildiği gibi, bu CSS özelliği henüz standartlaştırılmamıştır ve Internet Explorer 10'da tam olarak desteklenmemektedir. Bağlantı tabanlı denetimler de yine de klavyeyi kullanarak odaklanabilir ve çalıştırılabilir. tabindex="-1"
Odaklanmalarını önlemek ve aria-disabled="disabled"
durumlarını yardımcı teknolojilere bildirmek için ekleyerek bu kontrolleri manuel olarak değiştirmelisiniz .
Tarayıcılar arası uyumluluk
Bootstrap bu stilleri tüm tarayıcılarda uygularken, Internet Explorer 11 ve altı disabled
, bir <fieldset>
. Bu tarayıcılarda alan kümesini devre dışı bırakmak için özel JavaScript kullanın.
doğrulama
Desteklenen tüm tarayıcılarımızda bulunan HTML5 form doğrulaması ile kullanıcılarınıza değerli, eyleme geçirilebilir geri bildirim sağlayın . Tarayıcı varsayılan doğrulama geri bildirimi arasından seçim yapın veya yerleşik sınıflarımız ve başlangıç JavaScript'i ile özel mesajlar uygulayın.
Nasıl çalışır
Bootstrap ile form doğrulama şu şekilde çalışır:
- HTML form doğrulaması, CSS'nin iki sözde sınıfı
:invalid
ve:valid
.<input>
,<select>
ve<textarea>
öğeleri için geçerlidir . - Bootstrap,
:invalid
ve:valid
stillerini.was-validated
, genellikle<form>
. Aksi takdirde, değeri olmayan herhangi bir zorunlu alan, sayfa yüklemesinde geçersiz olarak görünür. Bu şekilde, onları ne zaman etkinleştireceğinizi seçebilirsiniz (genellikle form gönderme denendikten sonra). - Formun görünümünü sıfırlamak için (örneğin, AJAX kullanılarak dinamik form gönderimleri durumunda),
.was-validated
sınıfı<form>
tekrar kaldırın. - Bir geri dönüş olarak, sunucu tarafı doğrulaması
.is-invalid
için sözde sınıflar yerine ve.is-valid
sınıfları kullanılabilir . bir gerektirmezler.was-validated
Bir ebeveyn sınıfı <label>
CSS'nin nasıl çalıştığına ilişkin kısıtlamalar nedeniyle , özel JavaScript'in yardımı olmadan DOM'da bir form kontrolünden önce gelen bir stile (şu anda) stiller uygulayamıyoruz .- Tüm modern tarayıcılar , form kontrollerini doğrulamak için bir dizi JavaScript yöntemi olan kısıtlama doğrulama API'sini destekler.
- Geri bildirim mesajları, tarayıcı varsayılanlarını kullanabilir (her tarayıcı için farklı ve CSS aracılığıyla biçimlendirilemez) veya ek HTML ve CSS ile özel geri bildirim stillerimizi kullanabilir.
setCustomValidity
JavaScript ile özel geçerlilik mesajları sağlayabilirsiniz .
Bunu akılda tutarak, özel form doğrulama stillerimiz, isteğe bağlı sunucu tarafı sınıflarımız ve tarayıcı varsayılanlarımız için aşağıdaki demoları göz önünde bulundurun.
Özel stiller
Özel Bootstrap form doğrulama mesajları için, novalidate
boolean niteliğini <form>
. Bu, tarayıcının varsayılan geri bildirim araç ipuçlarını devre dışı bırakır, ancak yine de JavaScript'teki form doğrulama API'lerine erişim sağlar. Aşağıdaki formu göndermeyi deneyin; JavaScript'imiz gönder düğmesini durduracak ve size geri bildirim iletecektir. Göndermeye çalışırken , form kontrollerinize uygulanan :invalid
ve stilleri göreceksiniz .:valid
Özel geri bildirim stilleri, geri bildirimi daha iyi iletmek için özel renkler, kenarlıklar, odak stilleri ve arka plan simgeleri uygular. s için arka plan simgeleri <select>
yalnızca ile kullanılabilir .custom-select
, ile kullanılamaz .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>
Tarayıcı varsayılanları
Özel doğrulama geri bildirim mesajlarıyla veya form davranışlarını değiştirmek için JavaScript yazmakla ilgilenmiyor musunuz? Her şey yolunda, tarayıcı varsayılanlarını kullanabilirsiniz. Aşağıdaki formu göndermeyi deneyin. Tarayıcınıza ve işletim sisteminize bağlı olarak, biraz farklı bir geri bildirim tarzı görürsünüz.
Bu geri bildirim stilleri CSS ile biçimlendirilemezken, geri bildirim metnini JavaScript aracılığıyla yine de özelleştirebilirsiniz.
<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>
sunucu tarafı
İstemci tarafı doğrulama kullanmanızı öneririz, ancak sunucu tarafı doğrulamaya ihtiyaç duymanız durumunda geçersiz ve geçerli form alanlarını ve ile .is-invalid
belirtebilirsiniz .is-valid
. .invalid-feedback
Bu sınıflarla da desteklendiğini unutmayın .
Geçersiz alanlar için, geçersiz geri bildirim/hata mesajının kullanarak ilgili form alanıyla ilişkilendirildiğinden emin olun aria-describedby
. id
Bu öznitelik , alanın zaten ek form metnine işaret etmesi durumunda birden fazla başvuru yapılmasına izin verir .
<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>
Desteklenen öğeler
Aşağıdaki form kontrolleri ve bileşenleri için doğrulama stilleri mevcuttur:
<input>
s ve<textarea>
s ile.form-control
<select>
s ile.form-control
veya.custom-select
.form-check
s.custom-checkbox
s ve.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>
Araç ipuçları
Form düzeniniz izin veriyorsa, stilize edilmiş bir araç ipucunda doğrulama geri bildirimini görüntülemek .{valid|invalid}-feedback
için sınıfları sınıflarla değiştirebilirsiniz. Araç ipucu konumlandırması için üzerinde .{valid|invalid}-tooltip
bir ebeveyn bulunduğundan emin olun . position: relative
Aşağıdaki örnekte, sütun sınıflarımız buna zaten sahiptir, ancak projeniz alternatif bir kurulum gerektirebilir.
<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>
özelleştirme
Doğrulama durumları $form-validation-states
harita ile Sass üzerinden özelleştirilebilir. Dosyamızda bulunan _variables.scss
bu Sass haritası, varsayılan valid
/ invalid
doğrulama durumlarını oluşturmak için döngüye alınmıştır. Her durumun rengini ve simgesini özelleştirmek için iç içe geçmiş bir harita dahildir. Tarayıcılar tarafından başka hiçbir durum desteklenmezken, özel stiller kullananlar daha karmaşık form geri bildirimlerini kolayca ekleyebilir.
Lütfen, karışımı değiştirmeden bu değerleri özelleştirmenizi form-validation-state
önermediğimizi unutmayın.
// 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));
}
Giriş grubu doğrulaması
Doğrulamalı bir giriş grubu içinde hangi öğelerin yuvarlatılmış köşelere ihtiyacı olduğunu saptamak için, bir giriş grubu ek bir .has-validation
sınıf gerektirir.
<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>
Özel formlar
Daha da fazla özelleştirme ve tarayıcılar arası tutarlılık için tarayıcı varsayılanlarını değiştirmek üzere tamamen özel form öğelerimizi kullanın. Anlamsal ve erişilebilir işaretleme üzerine inşa edilmişlerdir, bu nedenle herhangi bir varsayılan form denetimi için sağlam ikamelerdir.
Onay kutuları ve radyolar
Her bir onay kutusu, radyo <input>
ve eşleştirme, özel kontrolümüzü oluşturmak için <label>
a'ya sarılır . <div>
Yapısal olarak bu, varsayılanımızla aynı yaklaşımdır .form-check
.
Özel form göstergemizi uygun şekilde biçimlendirmek ~
için tüm <input>
durumlarımız için kardeş seçiciyi ( ) kullanıyoruz. :checked
Sınıfla birleştirildiğinde, .custom-control-label
her bir öğenin metnini <input>
' durumuna göre biçimlendirebiliriz.
<input>
Varsayılanı ile gizleriz ve yerine ve ile yeni bir özel form göstergesi oluşturmak için opacity
kullanırız . Ne yazık ki, yalnızca CSS'lerden özel bir tane oluşturamıyoruz ..custom-control-label
::before
::after
<input>
content
bu öğe üzerinde çalışmadığı için özel bir tane oluşturamıyoruz.
İşaretli durumlarda, Open Iconic'ten base64 gömülü SVG simgelerini kullanırız . Bu bize, tarayıcılar ve cihazlar arasında şekillendirme ve konumlandırma için en iyi kontrolü sağlar.
onay kutuları
<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>
:indeterminate
Özel onay kutuları, JavaScript aracılığıyla manuel olarak ayarlandığında sözde sınıfı da kullanabilir (bunu belirtmek için kullanılabilir HTML özniteliği yoktur).
jQuery kullanıyorsanız, bunun gibi bir şey yeterli olacaktır:
$('.your-checkbox').prop('indeterminate', true)
radyolar
<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>
Çizgide
<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>
Engelli
Özel onay kutuları ve radyolar da devre dışı bırakılabilir. disabled
Boolean niteliğini buna ekleyin <input>
ve özel gösterge ve etiket açıklaması otomatik olarak şekillendirilecektir.
<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>
Anahtarlar
Bir anahtar, özel bir onay kutusunun işaretlemesine sahiptir, ancak .custom-switch
bir geçiş anahtarı oluşturmak için sınıfı kullanır. Anahtarlar da disabled
özelliği destekler.
<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>
Seçim Menüsü
Özel menüler , özel stilleri tetiklemek için <select>
yalnızca özel bir sınıfa ihtiyaç duyar . Özel stiller, 'nin ilk görünümüyle .custom-select
sınırlıdır ve tarayıcı sınırlamaları nedeniyle 'leri değiştiremez.<select>
<option>
<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>
Benzer boyuttaki metin girişlerimize uyması için küçük ve büyük özel seçimler arasından da seçim yapabilirsiniz.
<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>
multiple
Öznitelik de desteklenir :
<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>
Nitelik olarak size
:
<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>
Menzil
ile özel <input type="range">
kontroller oluşturun .custom-range
. İz (arka plan) ve başparmak (değer) tarayıcılarda aynı görünecek şekilde tasarlanmıştır. İlerlemeyi görsel olarak belirtmek için yalnızca IE ve Firefox izlerini başparmağın solundan veya sağından “doldurmayı” desteklediğinden, şu anda desteklemiyoruz.
<label for="customRange1">Example range</label>
<input type="range" class="custom-range" id="customRange1">
min
Aralık girdileri, sırasıyla ve max
- 0
ve için örtük değerlere 100
sahiptir. min
ve niteliklerini kullananlar için yeni değerler belirleyebilirsiniz max
.
<label for="customRange2">Example range</label>
<input type="range" class="custom-range" min="0" max="5" id="customRange2">
Varsayılan olarak, aralık girişleri tamsayı değerlerine "snap" yapar. Bunu değiştirmek için bir step
değer belirtebilirsiniz. Aşağıdaki örnekte, kullanarak adım sayısını ikiye katlıyoruz step="0.5"
.
<label for="customRange3">Example range</label>
<input type="range" class="custom-range" min="0" max="5" step="0.5" id="customRange3">
Dosya tarayıcısı
Dosya girişi, grubun en çetrefilli olanıdır ve bunları işlevsel Dosya seç… ve seçilen dosya adı metni ile bağlamak istiyorsanız ek JavaScript gerektirir .
<div class="custom-file">
<input type="file" class="custom-file-input" id="customFile">
<label class="custom-file-label" for="customFile">Choose file</label>
</div>
<input>
Varsayılan dosyayı üzerinden gizleriz opacity
ve bunun yerine <label>
. Düğme oluşturulur ve ile konumlandırılır ::after
. Son olarak, çevreleyen içerik için uygun boşluk için a width
ve height
üzerinde beyan ederiz .<input>
SCSS ile dizeleri çevirme veya özelleştirme
Sözde :lang()
sınıf , “Gözat” metninin diğer dillere çevrilmesine izin vermek için kullanılır. İlgili dil etiketi ve yerelleştirilmiş dizelerle $custom-file-text
Sass değişkenine girişleri geçersiz kılın veya ekleyin . İngilizce dizeleri aynı şekilde özelleştirilebilir. Örneğin, İspanyolca bir çevirinin nasıl eklenebileceği aşağıda açıklanmıştır (İspanyolca'nın dil kodu ):es
$custom-file-text: (
en: "Browse",
es: "Elegir"
);
lang(es)
İspanyolca çeviri için özel dosya girişiyle ilgili eylem :
<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>
Doğru metnin gösterilebilmesi için belgenizin (veya alt ağacının) dilini doğru şekilde ayarlamanız gerekir. Bu, diğer yöntemlerin yanı sıra, öğedeki lang
öznitelik<html>
veya Content-Language
HTTP başlığı kullanılarak yapılabilir.
Dizeleri HTML ile çevirme veya özelleştirme
data-browse
Bootstrap ayrıca , özel giriş etiketine eklenebilen öznitelikle HTML'deki "Gözat" metnini çevirmenin bir yolunu sunar (örnek Felemenkçe):
<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>