Kancing
Anggo gaya tombol khusus Bootstrap pikeun tindakan dina bentuk, dialog, sareng seueur deui kalayan dukungan pikeun sababaraha ukuran, kaayaan, sareng seueur deui.
Contona
Bootstrap kalebet sababaraha gaya tombol anu tos siap, masing-masing ngalayanan tujuan semantikna, sareng sababaraha tambahan anu dialungkeun pikeun langkung seueur kontrol.
<button type="button" class="btn btn-primary">Primary</button>
<button type="button" class="btn btn-secondary">Secondary</button>
<button type="button" class="btn btn-success">Success</button>
<button type="button" class="btn btn-danger">Danger</button>
<button type="button" class="btn btn-warning">Warning</button>
<button type="button" class="btn btn-info">Info</button>
<button type="button" class="btn btn-light">Light</button>
<button type="button" class="btn btn-dark">Dark</button>
<button type="button" class="btn btn-link">Link</button>
Nepikeun harti kana téknologi anu ngabantosan
Ngagunakeun warna pikeun nambahkeun harti ngan nyadiakeun indikasi visual, nu moal conveyed ka pamaké tina téhnologi mantuan - kayaning pamiarsa layar. Pastikeun yén inpormasi anu dilambangkeun ku warna écés tina eusina sorangan (contona téks anu katingali), atanapi kalebet dina cara alternatif, sapertos téks tambahan disumputkeun sareng .visually-hidden
kelas.
Nonaktipkeun bungkus téks
Upami anjeun henteu hoyong téks tombol dibungkus, anjeun tiasa nambihan .text-nowrap
kelas kana tombol. Dina Sass, anjeun tiasa nyetél $btn-white-space: nowrap
nganonaktipkeun bungkus téks pikeun unggal tombol.
Tag tombol
Kelas .btn
dirancang pikeun dianggo sareng <button>
unsur. Nanging, anjeun ogé tiasa nganggo kelas ieu <a>
atanapi <input>
elemen (sanaos sababaraha panyungsi tiasa nerapkeun rendering anu rada béda).
Nalika nganggo kelas tombol dina <a>
elemen anu dianggo pikeun memicu fungsionalitas dina halaman (sapertos eusi runtuh), tinimbang ngahubungkeun ka halaman atanapi bagian énggal dina halaman ayeuna, tautan ieu kedah dipasihkeun role="button"
pikeun leres-leres nepikeun tujuanana kana téknologi anu ngabantosan sapertos. pamiarsa layar.
<a class="btn btn-primary" href="#" role="button">Link</a>
<button class="btn btn-primary" type="submit">Button</button>
<input class="btn btn-primary" type="button" value="Input">
<input class="btn btn-primary" type="submit" value="Submit">
<input class="btn btn-primary" type="reset" value="Reset">
Tombol outline
Peryogi tombol, tapi sanés warna latar anu ageung anu aranjeunna bawa? Ganti kelas modifier standar sareng .btn-outline-*
anu ngahapus sadaya gambar latar sareng warna dina tombol naon waé.
<button type="button" class="btn btn-outline-primary">Primary</button>
<button type="button" class="btn btn-outline-secondary">Secondary</button>
<button type="button" class="btn btn-outline-success">Success</button>
<button type="button" class="btn btn-outline-danger">Danger</button>
<button type="button" class="btn btn-outline-warning">Warning</button>
<button type="button" class="btn btn-outline-info">Info</button>
<button type="button" class="btn btn-outline-light">Light</button>
<button type="button" class="btn btn-outline-dark">Dark</button>
Ukuran
Fancy tombol gedé atawa leutik? Tambihkeun .btn-lg
atanapi .btn-sm
kanggo ukuran tambahan.
<button type="button" class="btn btn-primary btn-lg">Large button</button>
<button type="button" class="btn btn-secondary btn-lg">Large button</button>
<button type="button" class="btn btn-primary btn-sm">Small button</button>
<button type="button" class="btn btn-secondary btn-sm">Small button</button>
Anjeun malah tiasa ngagulung ukuran khusus anjeun sareng variabel CSS:
<button type="button" class="btn btn-primary"
style="--bs-btn-padding-y: .25rem; --bs-btn-padding-x: .5rem; --bs-btn-font-size: .75rem;">
Custom button
</button>
kaayaan ditumpurkeun
Jieun tombol kasampak teu aktif ku nambahkeun disabled
atribut boolean kana <button>
elemen naon. Tombol ditumpurkeun geus pointer-events: none
dilarapkeun ka, nyegah hover jeung kaayaan aktip ti pemicu.
<button type="button" class="btn btn-primary" disabled>Primary button</button>
<button type="button" class="btn btn-secondary" disabled>Button</button>
<button type="button" class="btn btn-outline-primary" disabled>Primary button</button>
<button type="button" class="btn btn-outline-secondary" disabled>Button</button>
Tombol ditumpurkeun ngagunakeun <a>
unsur kalakuanana rada béda:
<a>
s teu ngarojongdisabled
atribut, jadi Anjeun kudu nambahan.disabled
kelas pikeun make eta visually némbongan ditumpurkeun.- Sababaraha gaya ramah-hareup kaasup pikeun nganonaktipkeun sadayana
pointer-events
dina tombol jangkar. - Tombol anu ditumpurkeun
<a>
kedah kalebetaria-disabled="true"
atribut pikeun nunjukkeun kaayaan unsur pikeun téknologi anu ngabantosan. - Tombol ditumpurkeun ngagunakeun
<a>
teu kudu kaasuphref
atribut.
<a class="btn btn-primary disabled" role="button" aria-disabled="true">Primary link</a>
<a class="btn btn-secondary disabled" role="button" aria-disabled="true">Link</a>
Patalina fungsi caveat
Pikeun nutupan kasus dimana anjeun kudu tetep href
atribut dina tumbu ditumpurkeun, .disabled
kelas ngagunakeun pointer-events: none
nyoba nganonaktipkeun pungsi link <a>
s. Catet yén sipat CSS ieu henteu acan standarisasi pikeun HTML, tapi sadaya panyungsi modéren ngadukung éta. Sajaba ti éta, sanajan dina panyungsi nu ngarojong pointer-events: none
, navigasi kibor tetep teu kapangaruhan, hartina pamaké keyboard sighted jeung pamaké téknologi pitulung bakal tetep bisa ngaktipkeun Tumbu ieu. Janten aman, salian ti aria-disabled="true"
, kalebet ogé tabindex="-1"
atribut dina tautan ieu pikeun nyegah aranjeunna nampi fokus keyboard, sareng nganggo JavaScript khusus pikeun nganonaktipkeun fungsionalitasna sadayana.
<a href="#" class="btn btn-primary disabled" tabindex="-1" role="button" aria-disabled="true">Primary link</a>
<a href="#" class="btn btn-secondary disabled" tabindex="-1" role="button" aria-disabled="true">Link</a>
Tombol blokir
Nyiptakeun tumpukan responsif tina "tombol blok" lebar pinuh, sapertos anu aya dina Bootstrap 4 kalayan campuran utilitas tampilan sareng gap kami. Ku ngagunakeun utilitas tinimbang kelas husus tombol, urang boga kontrol leuwih gede kana spasi, alignment, sarta paripolah responsif.
<div class="d-grid gap-2">
<button class="btn btn-primary" type="button">Button</button>
<button class="btn btn-primary" type="button">Button</button>
</div>
Di dieu urang nyieun variasi responsif, dimimitian ku tombol vertikal tumpuk dugi md
breakpoint nu, dimana .d-md-block
ngagantikeun .d-grid
kelas, sahingga nullifying gap-2
utiliti. Ganti ukuran browser anjeun pikeun ningali aranjeunna robih.
<div class="d-grid gap-2 d-md-block">
<button class="btn btn-primary" type="button">Button</button>
<button class="btn btn-primary" type="button">Button</button>
</div>
Anjeun tiasa nyaluyukeun lebar tombol blok anjeun kalayan kelas lebar kolom grid. Contona, pikeun satengah-lebar "tombol blok", make .col-6
. Puseur sacara horisontal sareng .mx-auto
ogé.
<div class="d-grid gap-2 col-6 mx-auto">
<button class="btn btn-primary" type="button">Button</button>
<button class="btn btn-primary" type="button">Button</button>
</div>
Utiliti tambahan tiasa dianggo pikeun nyaluyukeun alignment tombol nalika horizontal. Di dieu kami parantos nyandak conto responsif sateuacana sareng nambihan sababaraha utilitas fleksibel sareng utilitas margin dina tombol ka katuhu align tombol nalika aranjeunna henteu ditumpuk.
<div class="d-grid gap-2 d-md-flex justify-content-md-end">
<button class="btn btn-primary me-md-2" type="button">Button</button>
<button class="btn btn-primary" type="button">Button</button>
</div>
Plugin tombol
Tombol plugin ngidinan Anjeun pikeun nyieun basajan on / off tombol toggle.
Togél kaayaan
Tambahkeun data-bs-toggle="button"
ka toggle kaayaan hiji tombol active
. Upami anjeun tos togling tombol, anjeun kedah nambihan .active
kelas sacara manual sareng aria-pressed="true"
mastikeun yén éta dikirimkeun leres kana téknologi anu ngabantosan.
<button type="button" class="btn btn-primary" data-bs-toggle="button">Toggle button</button>
<button type="button" class="btn btn-primary active" data-bs-toggle="button" aria-pressed="true">Active toggle button</button>
<button type="button" class="btn btn-primary" disabled data-bs-toggle="button">Disabled toggle button</button>
<a href="#" class="btn btn-primary" role="button" data-bs-toggle="button">Toggle link</a>
<a href="#" class="btn btn-primary active" role="button" data-bs-toggle="button" aria-pressed="true">Active toggle link</a>
<a class="btn btn-primary disabled" aria-disabled="true" role="button" data-bs-toggle="button">Disabled toggle link</a>
Métode
Anjeun tiasa nyiptakeun conto tombol sareng konstruktor tombol, contona:
const bsButton = new bootstrap.Button('#myButton')
Métode | Katerangan |
---|---|
dispose |
Ngancurkeun tombol unsur. (Ngahapus data anu disimpen dina unsur DOM) |
getInstance |
Metodeu statik anu ngamungkinkeun anjeun kéngingkeun conto tombol anu aya hubunganana sareng unsur DOM, anjeun tiasa nganggo sapertos kieu: bootstrap.Button.getInstance(element) . |
getOrCreateInstance |
Métode statik anu ngabalikeun conto tombol anu aya hubunganana sareng unsur DOM atanapi nyiptakeun anu énggal upami henteu diinisialisasi. Anjeun tiasa nganggo sapertos kieu: bootstrap.Button.getOrCreateInstance(element) . |
toggle |
Toggles kaayaan push. Méré tombol tampilan yén éta geus diaktipkeun. |
Contona, pikeun toggle sadaya tombol
document.querySelectorAll('.btn').forEach(buttonElement => {
const button = bootstrap.Button.getOrCreateInstance(buttonElement)
button.toggle()
})
CSS
Variabel
Ditambahkeun dina v5.2.0Salaku bagian tina pendekatan variabel CSS Bootstrap anu ngembang, tombol ayeuna nganggo variabel CSS lokal .btn
pikeun kustomisasi sacara real-time anu ditingkatkeun. Nilai pikeun variabel CSS diatur via Sass, jadi kustomisasi Sass masih dirojong, teuing.
--#{$prefix}btn-padding-x: #{$btn-padding-x};
--#{$prefix}btn-padding-y: #{$btn-padding-y};
--#{$prefix}btn-font-family: #{$btn-font-family};
@include rfs($btn-font-size, --#{$prefix}btn-font-size);
--#{$prefix}btn-font-weight: #{$btn-font-weight};
--#{$prefix}btn-line-height: #{$btn-line-height};
--#{$prefix}btn-color: #{$body-color};
--#{$prefix}btn-bg: transparent;
--#{$prefix}btn-border-width: #{$btn-border-width};
--#{$prefix}btn-border-color: transparent;
--#{$prefix}btn-border-radius: #{$btn-border-radius};
--#{$prefix}btn-hover-border-color: transparent;
--#{$prefix}btn-box-shadow: #{$btn-box-shadow};
--#{$prefix}btn-disabled-opacity: #{$btn-disabled-opacity};
--#{$prefix}btn-focus-box-shadow: 0 0 0 #{$btn-focus-width} rgba(var(--#{$prefix}btn-focus-shadow-rgb), .5);
Unggal .btn-*
kelas modifier ngamutahirkeun variabel CSS luyu pikeun ngaleutikan aturan CSS tambahan kalawan kami button-variant()
, button-outline-variant()
, sarta button-size()
mixins.
Ieu conto ngawangun .btn-*
kelas modifier khusus sapertos anu urang lakukeun pikeun tombol-tombol anu unik pikeun dokumen urang ku cara napelkeun deui variabel CSS Bootstrap sareng campuran variabel CSS sareng Sass urang sorangan.
.btn-bd-primary {
--bs-btn-font-weight: 600;
--bs-btn-color: var(--bs-white);
--bs-btn-bg: var(--bd-violet);
--bs-btn-border-color: var(--bd-violet);
--bs-btn-border-radius: .5rem;
--bs-btn-hover-color: var(--bs-white);
--bs-btn-hover-bg: #{shade-color($bd-violet, 10%)};
--bs-btn-hover-border-color: #{shade-color($bd-violet, 10%)};
--bs-btn-focus-shadow-rgb: var(--bd-violet-rgb);
--bs-btn-active-color: var(--bs-btn-hover-color);
--bs-btn-active-bg: #{shade-color($bd-violet, 20%)};
--bs-btn-active-border-color: #{shade-color($bd-violet, 20%)};
}
variabel Sass
$btn-padding-y: $input-btn-padding-y;
$btn-padding-x: $input-btn-padding-x;
$btn-font-family: $input-btn-font-family;
$btn-font-size: $input-btn-font-size;
$btn-line-height: $input-btn-line-height;
$btn-white-space: null; // Set to `nowrap` to prevent text wrapping
$btn-padding-y-sm: $input-btn-padding-y-sm;
$btn-padding-x-sm: $input-btn-padding-x-sm;
$btn-font-size-sm: $input-btn-font-size-sm;
$btn-padding-y-lg: $input-btn-padding-y-lg;
$btn-padding-x-lg: $input-btn-padding-x-lg;
$btn-font-size-lg: $input-btn-font-size-lg;
$btn-border-width: $input-btn-border-width;
$btn-font-weight: $font-weight-normal;
$btn-box-shadow: inset 0 1px 0 rgba($white, .15), 0 1px 1px rgba($black, .075);
$btn-focus-width: $input-btn-focus-width;
$btn-focus-box-shadow: $input-btn-focus-box-shadow;
$btn-disabled-opacity: .65;
$btn-active-box-shadow: inset 0 3px 5px rgba($black, .125);
$btn-link-color: var(--#{$prefix}link-color);
$btn-link-hover-color: var(--#{$prefix}link-hover-color);
$btn-link-disabled-color: $gray-600;
// Allows for customizing button radius independently from global border radius
$btn-border-radius: $border-radius;
$btn-border-radius-sm: $border-radius-sm;
$btn-border-radius-lg: $border-radius-lg;
$btn-transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out;
$btn-hover-bg-shade-amount: 15%;
$btn-hover-bg-tint-amount: 15%;
$btn-hover-border-shade-amount: 20%;
$btn-hover-border-tint-amount: 10%;
$btn-active-bg-shade-amount: 20%;
$btn-active-bg-tint-amount: 20%;
$btn-active-border-shade-amount: 25%;
$btn-active-border-tint-amount: 10%;
Sass mixins
Aya tilu mixins pikeun tombol: tombol jeung tombol outline varian mixins (duanana dumasar kana $theme-colors
), ditambah hiji mixin ukuran tombol.
@mixin button-variant(
$background,
$border,
$color: color-contrast($background),
$hover-background: if($color == $color-contrast-light, shade-color($background, $btn-hover-bg-shade-amount), tint-color($background, $btn-hover-bg-tint-amount)),
$hover-border: if($color == $color-contrast-light, shade-color($border, $btn-hover-border-shade-amount), tint-color($border, $btn-hover-border-tint-amount)),
$hover-color: color-contrast($hover-background),
$active-background: if($color == $color-contrast-light, shade-color($background, $btn-active-bg-shade-amount), tint-color($background, $btn-active-bg-tint-amount)),
$active-border: if($color == $color-contrast-light, shade-color($border, $btn-active-border-shade-amount), tint-color($border, $btn-active-border-tint-amount)),
$active-color: color-contrast($active-background),
$disabled-background: $background,
$disabled-border: $border,
$disabled-color: color-contrast($disabled-background)
) {
--#{$prefix}btn-color: #{$color};
--#{$prefix}btn-bg: #{$background};
--#{$prefix}btn-border-color: #{$border};
--#{$prefix}btn-hover-color: #{$hover-color};
--#{$prefix}btn-hover-bg: #{$hover-background};
--#{$prefix}btn-hover-border-color: #{$hover-border};
--#{$prefix}btn-focus-shadow-rgb: #{to-rgb(mix($color, $border, 15%))};
--#{$prefix}btn-active-color: #{$active-color};
--#{$prefix}btn-active-bg: #{$active-background};
--#{$prefix}btn-active-border-color: #{$active-border};
--#{$prefix}btn-active-shadow: #{$btn-active-box-shadow};
--#{$prefix}btn-disabled-color: #{$disabled-color};
--#{$prefix}btn-disabled-bg: #{$disabled-background};
--#{$prefix}btn-disabled-border-color: #{$disabled-border};
}
@mixin button-outline-variant(
$color,
$color-hover: color-contrast($color),
$active-background: $color,
$active-border: $color,
$active-color: color-contrast($active-background)
) {
--#{$prefix}btn-color: #{$color};
--#{$prefix}btn-border-color: #{$color};
--#{$prefix}btn-hover-color: #{$color-hover};
--#{$prefix}btn-hover-bg: #{$active-background};
--#{$prefix}btn-hover-border-color: #{$active-border};
--#{$prefix}btn-focus-shadow-rgb: #{to-rgb($color)};
--#{$prefix}btn-active-color: #{$active-color};
--#{$prefix}btn-active-bg: #{$active-background};
--#{$prefix}btn-active-border-color: #{$active-border};
--#{$prefix}btn-active-shadow: #{$btn-active-box-shadow};
--#{$prefix}btn-disabled-color: #{$color};
--#{$prefix}btn-disabled-bg: transparent;
--#{$prefix}btn-disabled-border-color: #{$color};
--#{$prefix}gradient: none;
}
@mixin button-size($padding-y, $padding-x, $font-size, $border-radius) {
--#{$prefix}btn-padding-y: #{$padding-y};
--#{$prefix}btn-padding-x: #{$padding-x};
@include rfs($font-size, --#{$prefix}btn-font-size);
--#{$prefix}btn-border-radius: #{$border-radius};
}
Sass puteran
Varian tombol (pikeun tombol biasa sareng outline) nganggo campuran masing-masing sareng $theme-colors
peta kami pikeun ngahasilkeun kelas modifier dina scss/_buttons.scss
.
@each $color, $value in $theme-colors {
.btn-#{$color} {
@if $color == "light" {
@include button-variant(
$value,
$value,
$hover-background: shade-color($value, $btn-hover-bg-shade-amount),
$hover-border: shade-color($value, $btn-hover-border-shade-amount),
$active-background: shade-color($value, $btn-active-bg-shade-amount),
$active-border: shade-color($value, $btn-active-border-shade-amount)
);
} @else if $color == "dark" {
@include button-variant(
$value,
$value,
$hover-background: tint-color($value, $btn-hover-bg-tint-amount),
$hover-border: tint-color($value, $btn-hover-border-tint-amount),
$active-background: tint-color($value, $btn-active-bg-tint-amount),
$active-border: tint-color($value, $btn-active-border-tint-amount)
);
} @else {
@include button-variant($value, $value);
}
}
}
@each $color, $value in $theme-colors {
.btn-outline-#{$color} {
@include button-outline-variant($value);
}
}